在键/值对中查找第二个值的总和

时间:2015-12-09 06:55:05

标签: apache-spark pyspark

刚开始使用PySpark

我有一个键/值对,如关注(key,(value1,value2))

我想为每个键找到 value2 的总和

输入数据的示例

 (22, (33, 17.0)),(22, (34, 15.0)),(20, (3, 5.5)),(20, (11, 0.0))

谢谢!

2 个答案:

答案 0 :(得分:2)

最后我创建了一个新的RDD包含键,只有value2,然后只是新RDD的和值

sumRdd = rdd.map(lambda (x, (a, b)): (x, b))\
.groupByKey().mapValues(sum).collect()

答案 1 :(得分:2)

如果您想从合成器中受益,这将是一个更好的选择。

from operator import add
sumRdd = rdd.map(lambda (x, (a, b)): (x, b)).reduceByKey(add)