脚本宝典收集整理的这篇文章主要介绍了foldByKey算子aggregateByKey算子,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
groupByKey,group,reduceByKey,foldByKey,aggregateByKey 都可以算作聚合类算子。
其中reduceByKey,foldByKey,aggregateByKey 效果很相似,下面记录一下他们的差别
这三个都是支持在Map端进行全局聚合的
foldByKey是一个柯里化的函数,第一个参数是初始值,第二个是函数。
可以很明显的在
combineByKeyWithClassTag
函数中看到调用三次传入的函数,第一次对初始值和分区内同一个分组的数据进行,第二次将第一次的值和同一个分组内的下一个数据进行函数操作。第三次在全局聚合中使用。
aggregateByKey 是一个柯里化的函数,第一个参数是初始值,第二个是分区内使用的函数,第三个是全局聚合使用的函数。
可以很明显的在
combineByKeyWithClassTag
函数中看到分区内的函数调用俩次,全局函数调用一次。第一次对初始值和分区内同一个分组的数据进行分区函数,第二次将第一次的值和同一个分组内的下一个数据进行分区函数操作。最后使用全局聚合函数
reduceByKey就只是一个普通的函数,只需要传入一个函数就可以了,
可以看到func函数被调用了俩次,在分区内对同组数据使用一次,在全局在使用一次。
以上是脚本宝典为你收集整理的foldByKey算子aggregateByKey算子全部内容,希望文章能够帮你解决foldByKey算子aggregateByKey算子所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。