4.3.1 聚合操作

Spark 有一组类似的操作,可以组合具有相同键的值。
这些操作返回 RDD,因此它们是转化操作而不是行动操作。

本章讨论的大多数操作符都能接收第二个参数,这个参数用来指定分组结果或聚合结果的 RDD 的分区数。

在 Python 中自定义 reduceByKey() 的并行度:

data = [("a", 3), ("b", 4), ("a", 1)]
sc.parallelize(data).reduceByKey(lambda x, y: x + y) # 默认并行度
sc.parallelize(data).reduceByKey(lambda x, y: x + y, 10) # 自定义并行度

在 Scala 中自定义 reduceByKey() 的并行度:

val data = Seq(("a", 3), ("b", 4), ("a", 1))
sc.parallelize(data).reduceByKey((x, y) => x + y) // 默认并行度
sc.parallelize(data).reduceByKey((x, y) => x + y) // 自定义并行度

改变 RDD 的分区