GroupByKey和ReduceByKey两者都是spark中的Transformation算子,尽管二者通过操作可以实现相同的效果,但是二者有着很大的区别。
在shuffle操作上,ReduceByKey会在shuffle之前发生提前聚合,这样会大量的减少落盘的数据量,提高性能与效率,在开发中也是更偏向于使用ReduceByKey.然而GroupByKey不会在分区内提前聚合,只会在发生shuffle的时候进行分组聚合,并且还要搭配mapValues()使用,将需要的操作转到mapValues()里。
例:
Examples:使用reduceByKey统计数值
reduceByKey: 将数据按照value值累加(不是计数)
key2 = rdd3.reduceByKey(lambda x,y:x+y)
print(key2.collect())
[('b',

文章比较了Spark中GroupByKey和ReduceByKey两种Transformation算子,主要区别在于ReduceByKey在shuffle前进行提前聚合,减少数据量,提高性能,而GroupByKey则在shuffle时进行分组聚合,常需配合mapValues。
最低0.47元/天 解锁文章
1186

被折叠的 条评论
为什么被折叠?



