Spark 中 RDD 算子 ReduceByKey 和 GroupByKey 使用方法和区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark 中 RDD 算子 ReduceByKey 和 GroupByKey 使用方法和区别相关的知识,希望对你有一定的参考价值。

参考技术A 在对RDDPair(一种特殊的 RDD,即RDD[(key, Row)])进行操作时经常会用到 reduceByKey() 和 groupByKey() 两个算子。下面看看两者的区别和使用方法:

使用reduceByKey()的时候, 本地的数据先进行merge 然后再传输到不同节点再进行merge,最终得到最终结果。
而使用groupByKey()的时候,并 不进行本地的merge ,全部数据传出,得到全部数据后才会进行聚合成一个sequence,groupByKey()传输速度明显慢于reduceByKey()。
虽然groupByKey().map(func)也能实现reduceByKey(func)功能,但是 优先使用reduceByKey(func) 。

测试结果:

以上是关于Spark 中 RDD 算子 ReduceByKey 和 GroupByKey 使用方法和区别的主要内容,如果未能解决你的问题,请参考以下文章

Spark-RDD算子

Spark算子

Spark性能调优-RDD算子调优篇

Spark性能调优-RDD算子调优篇

Spark从入门到精通18:RDD常用高级算子介绍

Spark——RDD算子