查找 key/value 对中第二个值的总和

Find sum of second values in key/value pair

刚开始使用 PySpark

我有一对 key/value 如下 (key,(value1,value2))

我想为每个键value2求和

输入数据示例

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

谢谢!

最后我创建了一个新的 RDD 只包含 key,value2,然后只对新的 RDD 的值求和

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

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

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