2
讓我們考慮對RDD:pyspark;如何通過價值有效地降低
x = sc.parallelize([("a", 1), ("b", 1), ("a", 4), ("c", 7)])
有沒有更有效的替代:
x.map(lambda x: x[1]).reduce(lambda x, y: x+y)
,以便找到所有值的總和
讓我們考慮對RDD:pyspark;如何通過價值有效地降低
x = sc.parallelize([("a", 1), ("b", 1), ("a", 4), ("c", 7)])
有沒有更有效的替代:
x.map(lambda x: x[1]).reduce(lambda x, y: x+y)
,以便找到所有值的總和
由於x
是PairRDD
可以使用,而不是手動提取值values
方法:
x.values().sum()
x.map(lambda x: x[1]).sum()
有一個
sum
方法
總和(個人)源代碼
將此RDD中的元素相加。
sc.parallelize([1.0, 2.0, 3.0]).sum()
6.0
有sum'和'減少(拉姆達X,Y之間'中執行策略小差:x + y)'但我懷疑這會對性能產生顯着影響。 – zero323