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