博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark笔记-treeReduce、reduce、reduceByKey
阅读量:5167 次
发布时间:2019-06-13

本文共 912 字,大约阅读时间需要 3 分钟。

 

参考资料:

http://stackoverflow.com/questions/32281417/understadning-treereduce-in-spark

http://stackoverflow.com/questions/34078430/treereduce-vs-reducebykey-in-spark

 

reduceByKey和treeReduce之间有一个根本区别,reduceByKey它只对key-value pair RDDs可用,而treeReduce可以对任何RDD使用,相当于是reduce操作的泛化。 reduceByKey用于实现treeReduce,但它们在任何其他意义上都不相关。

reduceByKey对每个键执行reduce,结果生成RDD; 它不是"action"操作,而是返回ShuffleRDD,是"transformation"。 这等效于groupByKey后面跟着一个map,它执行key-wise reduction(为什么使用groupByKey是低效的)。

另一方面,treeAggregate是reduce函数的泛化,灵感来自AllReduce。 这在Spark中是一个"action",将结果返回到master节点。在执行本地的reduce操作之后,普通的reduce在master上执行剩余的计算,这样的计算量可能是非常繁重的(特别是在机器学习中,reduce函数结果是大的向量或矩阵时)。 相反,treeReduce使用reduceByKey并行的执行reduction(这是通过在运行时创建key-value pair RDD,其中键由树的深度确定)

 

treeReduce & reduce return some result to driver

treeReduce does more work on the executors

while reduce bring everything back to the driver.

 
分类: 

转载于:https://www.cnblogs.com/jeasonit/p/10533748.html

你可能感兴趣的文章
ASP.Net
查看>>
[Java]读取文件方法(转)
查看>>
React 从入门到进阶之路(六)
查看>>
ACM牛人博客
查看>>
二分搜索 Codeforces Round #218 (Div. 2) C. Hamburgers
查看>>
Codeforces Round #336 (Div. 2)
查看>>
gunicorn运行显示connection in use解决办法
查看>>
CSUST 1506 ZZ的计算器 模拟题
查看>>
2013“嘉杰信息”杯ACM/ICPC湘潭多省程序设计竞赛暨湘潭市第五届大学生程序设计竞赛 F题 five tiger 湘潭大学1173题...
查看>>
20个国外创意404错误页面设计
查看>>
【原创】11. MYSQL++ 之 Quoting 与 Escaping
查看>>
生成验证码图片与验证码刷新
查看>>
MySQL开发设计规范
查看>>
数据结构之图(图的基本操作)
查看>>
HDU 1005 Number Sequence
查看>>
666_2010
查看>>
vim E212
查看>>
.net core 在 Docker 上的部署
查看>>
C++学习(14)
查看>>
English trip -- Review Unit2 At school 在学校
查看>>