hadoop spark中reduce和reducebykey在功能上有什么区别?
为什么reducebykey是一个转换,reduce是一个动作。

最佳答案

这接近于my answer explaining reduceByKey的复制品,但我将详细说明使两者不同的具体部分。不过,关于reduceByKey的内部细节,请参阅我的答案。
基本上,reduce必须将整个数据集下拉到一个位置,因为它将减少到最后一个值。reduceByKey另一方面是每个键一个值。由于这个操作可以首先在本地的每台机器上运行,所以它可以保持一个RDD,并在其数据集上进行进一步的转换。
不过,请注意,还有一个reduceByKeyLocally可以用来自动将地图拉到单个位置。

09-08 00:41