其他分享
首页 > 其他分享> > Spark中groupByKey和reduceByKey的区别

Spark中groupByKey和reduceByKey的区别

作者:互联网

重点比较reduceByKey和groupByKey:
相同点:
1,都作用于 RDD[K,V]
2,都是根据key来分组聚合
3, 默认,分区的数量都是不变的,但是都可以通过参数来指定分区数量

不同点:
1, groupByKey默认没有聚合函数,得到的返回值类型是RDD[ k,Iterable[V]]
2, reduceByKey 必须传聚合函数 得到的返回值类型 RDD[(K,聚合后的V)]
3, groupByKey().map() = reduceByKey

最重要的区别:
reduceByKey 会进行分区内聚合,然后再进行网络传输
groupByKey 不会进行局部聚合

结论:
如果这两个算子,都可以使用, 优先使用reduceByKey

标签:聚合,RDD,groupByKey,默认,reduceByKey,返回值,Spark
来源: https://www.cnblogs.com/hanhaotian/p/12563902.html