让我们考虑一对RDD:
x = sc.parallelize([("a", 1), ("b", 1), ("a", 4), ("c", 7)])
是否有更有效的替代方案:
x.map(lambda x: x[1]).reduce(lambda x, y: x+y)
为了找到所有值的总和
答案 0 :(得分:2)
sum
方法
x.map(lambda x: x[1]).sum()
sum(self)源代码
添加此RDD中的元素。
sc.parallelize([1.0, 2.0, 3.0]).sum()
6.0
答案 1 :(得分:2)
由于x
是PairRDD
,您可以使用values
方法而不是手动提取值:
x.values().sum()