代码之家  ›  专栏  ›  技术社区  ›  KayV

reduceByKey可以用于多个值吗?

  •  0
  • KayV  · 技术社区  · 6 年前

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

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

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

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

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Fermat's Little Student    6 年前

    从技术上讲,spark可以提供这样的API,但实际上并没有什么用处。

    一次减少更多的值并不一定更快。如果Spark rdd是基于列的,那么这可能是真的,但是它们不是。Spark是基于行的。