通过SparkR在R上运行Spark

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 Pinto,MLSecProject项目的负责人,进行了如下评价:这是非常有前途的:@amplab的SparkR。针对数据分析汇聚了我所钟爱的一切。
托管在Github上的该项目是已经拥有接近100颗星的活跃社区。考虑到该项目才上线一个月,这应该算得上是显著的成长了。虽然还存在若干未解决的问题,但这意味着社区正在积极参与到这个新开源项目中。
AMPLab团队已经表现出了今后在SparkR中集成Spark MLlib机器学习类库的浓厚兴趣,这样一来,算法可以无缝地并行运行而无需特别手动设定哪一部分的算法可以并行运行。MLlib是一个名为MLBase的大型机器学习项目的组件之一,该项目还包含了高级别抽象和优化器。MLlib是增长最快的机器学习类库之一,它拥有超过137个的贡献者,因此,给它增加使用R语言的能力,可以让AMPLab激发更多的R使用者为MLlib做出贡献。
查看英文原文:Running Spark on R with SparkR

你可能感兴趣的:(R)