Apache spark 仅使用单个元素的RDD上的PySpark Reduce
不管怎样,只有一个元素可以处理RDD吗(我正在做的事情有时会发生这种情况)?在这种情况下,reduce停止工作,因为操作需要2个输入 我正在使用键值对,例如:Apache spark 仅使用单个元素的RDD上的PySpark Reduce,apache-spark,pyspark,rdd,reduce,Apache Spark,Pyspark,Rdd,Reduce,不管怎样,只有一个元素可以处理RDD吗(我正在做的事情有时会发生这种情况)?在这种情况下,reduce停止工作,因为操作需要2个输入 我正在使用键值对,例如: (key1, 10), (key2, 20), 我想汇总它们的值,结果应该是: 30 但有些情况下rdd只包含一个键值对,因此reduce在这里不起作用,例如: (key1, 10) 这将不返回任何内容。如果在执行reduce之前执行.values(),则即使RDD中只有一个元素,它也应该可以工作: from operator im
(key1, 10),
(key2, 20),
我想汇总它们的值,结果应该是:
30
但有些情况下rdd只包含一个键值对,因此reduce在这里不起作用,例如:
(key1, 10)
这将不返回任何内容。如果在执行reduce
之前执行.values()
,则即使RDD中只有一个元素,它也应该可以工作:
from operator import add
rdd = sc.parallelize([('key1', 10),])
rdd.values().reduce(add)
# 10
我的方法有问题,现在我使用
.values().fold(0,lambda x,y:x+y)
似乎解决了这个问题。非常感谢,朋友。