NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:0110622
用户头像

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

关注

评论

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

React源码分析(一)Fiber

goClient1992

React

2023Java面试,看完这份笔记薪资和offer都稳了!

程序知音

Java 编程语言 后端 八股文 Java面试题

前端react面试题合集

夏天的味道123

前端 React

ChatGPT-4 来了, OpenAI 官宣6种已落地应用和服务模式

B Impact

一天吃透分布式事务八股文

程序员大彬

Java 分布式事务

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

新版本发布!TDengine 3.0.3.0 为数据压缩、事件窗口等七大功能加“Buff”

TDengine

大数据 tdengine 开源 时序数据库 国产数据库

2023算云融合产业大会-行业先驱!算力云服务领航者计划评选结果即将揭晓

中国IDC圈

算力 云算力 云计算,

震惊,一行MD5居然让小伙伴都回不了家!!!

京东科技开发者

md5 京东云 京东技术 企业号 3 月 PK 榜

React Context源码是怎么实现的呢

flyzz177

React

PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类与图像风格迁移

TiAmo

PyTorch 图像处理

Amazon Detective 支持 Amazon EKS 上的 Kubernetes 工作负载以进行安全调查

亚马逊云科技 (Amazon Web Services)

前端工程师leetcode算法面试必备-二分搜索算法(下)

js2030code

JavaScript LeetCode

深入探究 Go log 标准库

江湖十年

Go 后端 日志 log

细说react源码中的合成事件

flyzz177

React

A-Ops 数据库场景在线应用性能诊断案例

openEuler

数据库 Linux 操作系统 openEuler 性能测评

详解React的Transition工作原理原理

夏天的味道123

前端 React

移动端应用性能多维监控——崩溃监控系统

Openlab_cosmoplat

工业互联网 开源社区 崩溃监控系统

JRC Flink流作业调优指南

京东科技开发者

Apache 京东云 京东技术 企业号 3 月 PK 榜

博睿数据入选中国高科技高成长企业系列榜单

博睿数据

可观测性 智能运维 博睿数据 荣誉奖项 高科技企业

FeatHub:流批一体的实时特征工程平台

Apache Flink

大数据 flink 实时计算

看透react源码之感受react的进化

goClient1992

React

深入react源码看setState究竟做了什么?

flyzz177

React

Matlab常用图像处理命令108例(五)

timerring

图像处理

这可能是你需要的React实战技巧

夏天的味道123

前端 React

前端常见react面试题合集

夏天的味道123

前端 React

React-Hooks源码深度解读

goClient1992

React

前端工程师leetcode算法面试必备-二分搜索算法(上)

js2030code

JavaScript LeetCode

文盘Rust -- 安全连接 TiDB/Mysql

京东科技开发者

rust TiDB 京东云 京东技术 企业号 3 月 PK 榜

@Transaction注解的失效场景

京东科技开发者

京东云 京东技术 企业号 3 月 PK 榜

中国美妆行业私域服务商发展洞察

易观分析

商业 美妆

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