跳转到主要内容
工程的博客

加速R工作流砖

2017年10月6日 工程的博客

分享这篇文章

在砖,我们努力使我们的bob体育亚洲版统一的分析平台bob体育客户端下载最好的地方运行大数据分析。对于大数据,Apache火花已成为事实上的计算引擎,而对于高级分析,R是其中一个最广泛使用的语言和环境。R的包的生态系统拥有超过10 k包从简单的统计函数的实现复杂的包等垂直基因组学金融

统一的分bob体育亚洲版析平台,bob体育客户端下载砖运行时(DBR)在其核心,加速和统一的优势Apache火花和r . DBR帮助客户,在广泛的行业和垂直,从大数据中提取价值效率。

许多砖R的用户利用Apache火花和R丰富的生态系统的优势与两步工作流程。首先,他们对分布式执行所有大型数据操作SparkDataFrames使用SparkR API。这些通常包括加载数据从其来源、解析和转换成需要的格式和形状。在许多情况下,最后一个结构化的数据集的有趣的部分可以在单个机器的内存。在这个阶段,用户分布式数据集转换为一个本地Rdata.frames并将它们传递给其他(单节点)为进一步分析R包或可视化。通常,R之间的转换data.frames和火花DataFrames发生很多次了。例如,结果一个R包功能并行与分布式数据集。

在这篇文章中,我们介绍两个新的改进砖3.3运行时(DBR)加速这些常见的工作流。首先,我们添加了对R的支持包砖图书馆管理的一部分。其次,作为我们的一部分DBIO加速器模块,我们有加速的性能SparkR:收集()SparkR: createDataFrame ()。这两种api之间的桥梁是单节点R和分布式应用程序和火花SparkR最常用的功能之一。

在砖R包管理

砖的工作空间,用户现在可以定义一个图书馆,指向他们期望的凹口库和包。当这个库被附加到一个集群时,所有工人和司机节点将自动安装凹口包。这个功能可以通过REST API

与R管理库,将工作流与第三方R包将在砖容易得多。尤其是伸缩集群的情况,新员工可以动态地添加到集群。

高性能与DBIO SparkR

我们使用了航空公司的数据集为基准。数据集由超过1.2亿29行和列的数字和字符类型CSV格式的,这是普遍和流行R用户。我们逐步使用更大的数据集来评估分数与不同的数据吞吐量和延迟的大小和还发现极限之后,调用失败。我们比较DBR 3.3与3.0 DBR集群组成四个i3。超大的工人。

测量SparkR::收集()性能

我们第一次加载数据使用火花的CSV数据来源与自动模式推理。我们缓存和实现的火花DataFrame然后收集当地Rdata.frame。我们测量的总运行时间收集的步骤。

测量SparkR: createDataFrame()的性能

我们从本地文件系统加载文件使用R的表格数据读取功能默认配置,自动推断模式。然后我们并行化data.frameSparkR: createDataFrame ()和计数的行数。对于这个基准测试,我们测量时间的最后两个步骤的总和。

基准测试结果

首先,我们比较并行R的平均吞吐量data.frames在DBR 3.3和3.0 DBR。DBIO可以达到300 x更高的平均吞吐量DBR 3.3 DBR相比3.0。当收集火花DataFrames24 x,我们观察到更高的平均吞吐量砖比旧版本3.3运行时。

下面的情节显示的端到端延迟。这是用户感知当调用SparkR API。在每个DBR版本,我们逐步增加输入大小,直到调用会失败。我们测量时间为每个成功运行。

DBR 3.0SparkR: createDataFrame ()失败的数据大于750 k行(约70 mb)。在DBR 3.3 R的调用并没有失败data.frame。整体createDataFrame ()DBR 3.3 -快100倍,可以处理更大的数据。


的故障点SparkR:收集()没有改变。约为6 m行(550 mb) R过程不能处理单一的内存对象,收集火花时,我们观察到失败DataFrames。在这个实验中,DBR 3.3是10倍的速度比旧版本在不同输入的大小。

结论

我们不断努力提高砖的不同R工作流。我们最近宣布与sparklyr集成;R包管理和改进SparkR性能是我们最近的步骤这一目标。

如上所示,DBIO砖3.3运行时显著加速性能的最重要的两个SparkR调用:SparkR:收集()SparkR: createDataFrame ()。这些调用数据转移引发的JVM R,反之亦然,是最受欢迎的SparkR api。

阅读更多

阅读更多关于我们的努力与SparkR砖,我们请您留意以下资产:

免费试着砖
看到所有工程的博客的帖子