Spark1.4发布,引入SparkR

发布时间: 2015-07-22 阅读数: 2155

Spark1.4版本终于发布了,这一版本的最大亮点在于加入了SparkR,这一R包将使得数据科学家可以在R环境下分析大数据或者进行交互式作业!

R的并行能力和对大数据的支持能力一直备受诟病,虽然R可以高效的进行数据处理和机器学习任务,但R的处理能力受限于内存的大小。由AMPlab开发的SparkR提供了R与Apache Spark的接口,借助Spark的分布式计算引擎,我们可以在R环境下运行大规模的数据处理任务。

项目历史

SparkR最初是由AMPlab开发的项目,旨在整合R的易用性和Spark的可扩展能力。这一项目后来得到了开源社区的大力支持,性能大幅提高。最近,SparkR项目被并入Apache Spark孵化项目并在1.4版本中作为alpha的组件发布。

SparkR DataFrames

SparkRd的核心是SparkR DataFrames,是一Spark为基础的分布式数据框架。Data Frames作为R的数据处理基本对象其概念已经被扩展到很多的语言。dplyr包包含着大量对Data Frames的简化操作。SparkR 的DataFrames类似于R的Data Frames并且提供了类似于dplyr包的API函数,使之能很好的处理大数据。

关于SparkR的更多资料可以参考官方文档

#flights是sparkR 的DataFrames
#使用head函数展示数据的前几行
head(flights)
# 过滤出所有从JFK起飞的航班
jfk_flights <- filter(flights, flights$origin == "JFK")
#将DataFrames转化为R的Data Frame
local_df <- collect(jfk_flights)

SparkR整合带来的优势

轻松地使用数据源API

借助Spark SQL API,SparkR可以从包括Hive,JSON,Parquet文件等多种数据源中读取数据。

#flights是sparkR 的DataFrames
#使用head函数展示数据的前几行
head(flights)
# 过滤出所有从JFK起飞的航班
jfk_flights <- filter(flights, flights$origin == "JFK")
#将DataFrames转化为R的Data Frame
local_df <- collect(jfk_flights)

Data Frame的优化

SparkR的DataFrames也继承了Tungsten项目中的高性能计算的功能。下图展示了使用R、Python、Scala在单机上的100亿个整数对上运行group-by aggregation函数的结果,从图中可以看出使用哪个高性能计算引擎使得SparkR的性能十分接近Python和Scala。

可扩展性

通过Spark R的DataFrames执行的操作会自动分配到集群的所有核上。因而,SparkR DataFrames可以被用于TB级的数据并运行在上千节点的机器上。

展望

未来,SparkR还会加入更多的功能,这包括高级别的机器学习算法等等。有关SparkR的更多信息可以关注Spark Summit2015

 

本文由邢代涛编译自Databricks的博客

分享到:
热门文章

REmap发布,用R绘制百度迁徙图

2015年07月23日更新 19674次阅读

学习R语言,一篇文章让你从懵圈到入

2016年05月09日更新 13611次阅读

清华大学教授:大数据时代 统计学依

2015年08月07日更新 10975次阅读

在R中填充缺失数据—mice包

2015年12月31日更新 9348次阅读

精通 R plot—第一部分:颜色

2016年01月20日更新 7821次阅读

非统计学专业的人该如何学习 R 语

2015年07月24日更新 7757次阅读
热门课程

R语言初级课程

2015年02月20日发布 3102名学员

R语言高效数据清理工具包dplyr

2015年08月30日发布 1626名学员

R语言数据分析入门

2016年05月10日发布 1469名学员

如何用R做数据预处理

2016年06月03日发布 1125名学员

全栈数据工程师养成攻略

2016年11月08日发布 977名学员

R语言大规模数据分析实战

2015年12月17日发布 933名学员
登录 注册