通过 SparkR 在 R 上运行 Spark

阅读数:5853 2014 年 2 月 25 日

话题:DevOps大数据语言 & 开发架构AI

R 依然是数据学家手中最强大的语言之一,即使早在 2014 年一月底,加州大学伯克利分校的AMPLab就宣布发布了其 SparkR 项目的开发者预览版,该版本使用了基于原生 R 语言的 Apache Saprk,但是其使用难度还是在不断增加。

作为一个大规模处理内存中数据的大数据框架,Apache Saprk最近积攒了大量人气,像 Cloudera 这样的大公司已经表示大力支持该项目了。Cloudera 最近宣布在其针对 Hadoop 的 Cloudera 分支(CDH)4.4.0 以后的版本中将对 Spark 提供官方支持。这将包含最近在二月份才发布的最新版Spark 0.9,它是运行 SparkR 的预置条件。SparkR 出现的正是时候,因为 CDH 是最流行的 Hadoop 分支之一,而这有助于促使那些熟悉 R 略胜于 Java 和 Scala 的数据学家采用 SparkR,这在 O'Reilly 的一份关于数据学家的近期调查报告中就有所体现。

SparkR 应该被看作是 R 版 Spark 的轻量级前端,这意味着它不会拥有像 Scala 或 Java 那样广泛的 API,但它还是能够在 R 里运行 Spark 任务和操作数据。它其中的一项关键特性就是有能力序列化闭包,从而能依次透明地将变量副本传入需要参与运算的 Spark 集群。SparkR 还通过内置功能的形式集成了其他的 R 模块,这一功能会在需要某些模块参与运算的时候通知 Spark 集群加载特定的模块,但是,不同于闭包,这个需要手动设置。更多关于 SparkR 技术能力的细节可以参考这些总结。SparkR 还可以利用 Spark 的EC2 脚本在 EC2 上轻松进行设置,也可以在 Github 上找到与此相关的一些说明

数据学家们对 SparkR 的热衷程度不言而喻,尤其是在 Twitter 上,对该项目的支持数不胜数。Alex PintoMLSecProject项目的负责人,进行了如下评价:

这是非常有前途的:@amplab 的 SparkR。针对数据分析汇聚了我所钟爱的一切。

托管在Github 上的该项目是已经拥有接近 100 颗星的活跃社区。考虑到该项目才上线一个月,这应该算得上是显著的成长了。虽然还存在若干未解决的问题,但这意味着社区正在积极参与到这个新开源项目中。

AMPLab 团队已经表现出了今后在 SparkR 中集成 Spark MLlib机器学习类库的浓厚兴趣,这样一来,算法可以无缝地并行运行而无需特别手动设定哪一部分的算法可以并行运行。MLlib 是一个名为MLBase的大型机器学习项目的组件之一,该项目还包含了高级别抽象和优化器。MLlib 是增长最快的机器学习类库之一,它拥有超过 137 个的贡献者,因此,给它增加使用 R 语言的能力,可以让 AMPLab 激发更多的 R 使用者为 MLlib 做出贡献。

查看英文原文:Running Spark on R with SparkR


感谢邵思华对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。