如何在RDD中对列的值求和

时间:2016-08-01 18:22:38

标签: apache-spark pyspark

我有一个包含以下行的RDD:

[(id,value)]

您如何对RDD中所有行的值求和?

1 个答案:

答案 0 :(得分:1)

只需使用sum,您只需将数据放入列表即可。

例如

sc.parallelize([('id', [1, 2, 3]), ('id2', [3, 4, 5])]) \ 
    .flatMap(lambda tup: tup[1]) \ # [1, 2, 3, 3, 4, 5]
    .sum()

输出18

同样,只需使用values()将第二列作为其自己的RDD。

sc.parallelize([('id', 6), ('id2', 12)]) \ 
    .values() \ # [6, 12]
    .sum()