OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

SparkR 发布 让 R 跑在 Spark 上

  • 2014-01-26
  • 本文字数:1031 字

    阅读完需:约 3 分钟

SparkR 是 AMPLab 发布的一个 R 开发包,为 Apache Spark 提供了轻量的前端。SparkR 提供了 Spark 中弹性分布式数据集(RDD)的 API,用户可以在集群上通过 R shell 交互性的运行 job。例如,我们可以在 HDFS 上读取或写入文件,也可以使用 lapply 来定义对应每一个 RDD 元素的运算。

复制代码
sc <- sparkR.init("local")
lines <- textFile(sc, "hdfs://data.txt")
wordsPerLine <- lapply(lines, function(line) { length(unlist(strsplit(line, " "))) })

除了常见的 RDD 函数式算子 reduce、reduceByKey、groupByKey 和 collect 之外,SparkR 也支持利用 lapplyWithPartition 对每个 RDD 的分区进行操作。

SparkR 也支持常见的闭包(closure)功能:用户定义的函数中所引用到的变量会自动被发送到集群中其他的机器上。参见一下例子中用户闭包中引用的 initialWeights 会被自动发送到集群其他机器上。

复制代码
lines <- textFile(sc, "hdfs://data.txt")
initialWeights <- runif(n=D, min = -1, max = 1)
createMatrix <- function(line) {
as.numeric(unlist(strsplit(line, " "))) %*% t(initialWeights)
}
# initialWeights is automatically serialized
matrixRDD <- lapply(lines, createMatrix)

用户还可以很容易的在已经安装了 R 开发包的集群上使用 SparkR。includePackage 命令用于指示在每个集群上执行操作前读取开发包。以下是个例子:

复制代码
generateSparse <- function(x) {
# Use sparseMatrix function from the Matrix package
sparseMatrix(i=c(1, 2, 3), j=c(1, 2, 3), x=c(1, 2, 3))
}
includePackage(sc, Matrix)
sparseMat <- lapplyPartition(rdd, generateSparse)

针对 SparkR 发布的消息,大数据创业公司 DataBricks 的创始人之一 @hashjoin (辛湜)在微博上评论到:

R 是数据分析最常用的工具之一,但是 R 能处理的数据不能大于一台机器的内存。过去有一些 R 和 Hadoop 结合的尝试一般都性能低下,用户体验差。今天 AMPLab 发布了 R 的 Spark 前端,利用 R 进行大数据交互分析,也可以在节点上利用 R 的数据分析库,是大数据的一个新利器。

@vinW

我一直就说 R matlab 和 Spark 其实是一路的,内存流派的。Spark 这个分布式的高端搞法必将重振内存计算这个领域。

@刘思喆

重磅消息,比预想的要早很多。


感谢辛湜对本文的审校。

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

2014-01-26 08:0110619
用户头像

发布了 45 篇内容, 共 13.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

存量时代下 用低代码开发平台提升你的CEM

力软低代码开发平台

重磅 | 九科信息入选“第一新声”2022年中国RPA行业优秀厂商图谱

九科Ninetech

webAssembly on server side 的应用场景

磊吐槽

云原生 webassembly

华为云桌面——云上办公安全高效,高清流畅

与时俱进的时代

gitlab ldap配置

阿呆

gitlab ldap

居家办公正确的打开方式——华为云桌面

与时俱进的时代

开源创新 源起潮“蜥”——龙蜥社区走进浪潮信息 MeetUp 即将开幕

OpenAnolis小助手

云原生 Meetup 龙蜥社区 浪潮信息 开源活动

超高清设计师云工作站,为设计企业护航

清欢科技

数字化办公?选云桌面就对了!

科技之光

2022 卡塔尔世界杯收官,中国 App 继续中东「征战」

融云 RongCloud

App

集团型企业主数据管理框架、方法

用友BIP

华为云会议,总有一种场景满足你的需求

科技说

低成本、高效率!华为云桌面助力企业数字化转型

清欢科技

华为云桌面,开启云上高效办公之旅!

清欢科技

云上办公,还得是华为云桌面的一站式云上工作站

科技之光

流畅高清,华为云桌面助力设计师高效办公!

与时俱进的时代

华为云会议助力政企用户提升沟通效率

科技说

超高清设计师云工作站,设计可以更高效

清欢科技

Go Gorm Sqlite3 CreateInBatches 报错:too many SQL variable 排查与解决

非晓为骁

Go gorm sqlite3 CreateInBatches

简单易用的监控告警系统 | HertzBeat 在 Rainbond 上的使用分享

北京好雨科技有限公司

有奖征文活动:从 RTC 到 RTE,从音视频到「实时万象」!

声网

人工智能 音视频

华为云会议好评如潮的背后,竟然暗藏这么多黑科技!

科技说

HTTP的状态码

穿过生命散发芬芳

HTTP 12月月更

数字云办公连续7年领跑,华为云桌面优势突显!

科技之光

云办公成趋势,华为云桌面全方位保障企业安全

科技之光

灵活、高效、可靠,华为云桌面想用户所想!

与时俱进的时代

上云合作伙伴,华为云桌面致力打造优质云上办公生态

与时俱进的时代

What's new in dubbo-go v3.0.4

apache/dubbo-go

dubbo Dubbo服务 Dubbo网关

「实操」适配 NebulaGraph 新版本与压测实践

NebulaGraph

图数据库

安全灵活,华为云桌面成为数字化办公最佳搭档

清欢科技

云上办公,且看华为云桌面如何加速企业数字化发展之路?

科技之光

SparkR发布 让R跑在Spark上_语言 & 开发_包研_InfoQ精选文章