pyspark;如何有效地减少价值

时间:2015-07-21 11:36:08

标签: python apache-spark pyspark

让我们考虑一对RDD:

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

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

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

为了找到所有值的总和

2 个答案:

答案 0 :(得分:2)

RDD API

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

sum(self)源代码

     

添加此RDD中的元素。

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

答案 1 :(得分:2)

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

x.values().sum()