reduceByKey可以用于多个值吗?

时间:2018-10-20 19:17:43

标签: scala apache-spark rdd sparkcore

我刚刚开始学习spark和scala,并测试了RDD的一些转换和动作。

我发现reduceByKey的用法如下:

rdd.reduceByKey((x, y) => x + y)

其中,它采用两个相同值的元组,并使用加法运算将它们组合。

现在我的问题是,我们不能一次累加两个以上的值,还是一次只能累加所有具有相同键的值?像这样:

rdd.reduceByKey((p, q, r, s) => p+q+r+s)

为什么只添加两个值?将两个以上的值相加还可以节省大量计算吗?

1 个答案:

答案 0 :(得分:0)

从技术上讲,spark可以提供这样的API,但实际上不会有用。

一次减少更多的值不一定会更快。如果Spark RDD是基于列的,则不是这样。 Spark是基于行的。