【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

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

十大排序算法--堆排序

Ayue、

排序算法 8月日更

模块四作业

俊杰

架构实战营

学习总结

青鸟飞鱼

架构实战营-学习总结

泄矢的呼啦圈

架构实战营

模块四作业:千万级学生管理系统试卷存储方案

Felix

疫情之后,幸获内推,4面京东拿下offer(Java后台研发岗)

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

从外包进入苏宁再跳槽阿里,分享这五年来我“走过的路”

Java 编程 程序员 面试 计算机

仅靠七个步骤,4面通过拿offer,终“跳进”字节跳动

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

打咩哟!Github热榜第七的SpringBoot笔记(阿里内测版)终于开源!

Java 编程 程序员 架构 面试

软通动力 OpenHarmony 师资培训班隆重开启,聚焦高校教师赋能

开放原子开源基金会

花几天时间肝了一个在线制作词云图网站

Python研究者

Python 可视化 词云图 Python JSON 8月日更

【Vue2.x 源码学习】第二十八篇 - diff算法-问题分析与patch优化

Brave

源码 vue2 8月日更

Python代码阅读(第5篇):根据过滤器拆分列表

Felix

Python 编程 Code Programing 阅读代码

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Minerva -- Airbnb的大规模数据指标系统 Part 1

俞凡

架构 Airbnb 大厂实践 指标

写作 7 堂课——【2. 复利式写作】

LeifChen

写作技巧 8月日更 复利写作

手撸二叉树之二叉树中第二小的节点

HelloWorld杰少

数据结构与算法 8月日更

一线架构师开发总结:剖析并发编程+JVM性能,深入Tomcat与MySQL

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

二本渣渣5面阿里,从准备简历到“直怼”面试官,经历了什么?

公众号_愿天堂没有BUG

Github访问量破百万!原来是美团大牛的分布式架构实战笔记上线了

Java~~~

Java 面试 分布式 微服务 架构师

阿里云-云开发平台存储篇——给应用接上后端存储能力

若尘

阿里云 云开发 8月日更

Java 操作 Office:POI之word图片处理

程序员架构进阶

Java 架构 自我提升 实战问题 8月日更

Python3 基础语法

Geek_aee0b4

03- 面向复杂度的架构设计

Lane

模块四作业

Mr.He

架构实战营

FastApi-07-查询参数校验

Python研究所

FastApi 8月日更

北鲲云超算接入GPUA100,让AlphaFold2轻松使用

北鲲云

用不了AlphaFold2?北鲲云高性能计算平台解决这个问题

北鲲云

Minerva -- Airbnb的大规模数据指标系统 Part 2

俞凡

架构 Airbnb 大厂实践 指标

模块4.存储架构设计

脉动

Android Jetpack Compose

Changing Lin

8月日更

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