我刚刚开始学习spark和scala,并测试RDD上的一些转换和操作。
rdd.reduceByKey((x, y) => x + y)
其中,取两个相同值的元组,并使用加法运算将它们组合起来。
rdd.reduceByKey((p, q, r, s) => p+q+r+s)
为什么只加两个值?添加两个以上的值也可以节省大量计算?
从技术上讲,spark可以提供这样的API,但实际上并没有什么用处。
一次减少更多的值并不一定更快。如果Spark rdd是基于列的,那么这可能是真的,但是它们不是。Spark是基于行的。