火花;如何有效地减少价值

pyspark ; how to reduce by values efficiently

让我们考虑 RDD 对:

x = sc.parallelize([("a", 1), ("b", 1), ("a", 4), ("c", 7)])

是否有更有效的替代方法:

x.map(lambda x: x[1]).reduce(lambda x, y: x+y)

为了找到所有值的总和

RDD API

中有一个sum方法
x.map(lambda x: x[1]).sum()

sum(self) source code

Add up the elements in this RDD.

sc.parallelize([1.0, 2.0, 3.0]).sum()
6.0

由于 xPairRDD 您可以使用 values 方法而不是手动提取值:

x.values().sum()