我刚刚开始学习spark和scala,并测试了RDD的一些转换和动作。
我发现reduceByKey的用法如下:
rdd.reduceByKey((x, y) => x + y)
其中,它采用两个相同值的元组,并使用加法运算将它们组合。
现在我的问题是,我们不能一次累加两个以上的值,还是一次只能累加所有具有相同键的值?像这样:
rdd.reduceByKey((p, q, r, s) => p+q+r+s)
为什么只添加两个值?将两个以上的值相加还可以节省大量计算吗?
答案 0 :(得分:0)
从技术上讲,spark可以提供这样的API,但实际上不会有用。
一次减少更多的值不一定会更快。如果Spark RDD是基于列的,则不是这样。 Spark是基于行的。