PySpark Reduce on RDD 只有一个元素

PySpark Reduce on RDD with only single element

有没有办法处理只有一个元素的 RDD(我正在做的事情有时会发生这种情况)?在这种情况下,reduce 停止工作,因为该操作需要 2 个输入。

我正在使用键值对,例如:

(key1, 10),
(key2, 20),

我想汇总它们的值,所以结果应该是:

30

但是有些情况下rdd只包含一个键值对,所以reduce在这里不起作用,例如:

(key1, 10)

这将return什么都没有。

如果在 reduce 之前执行 .values(),即使 RDD 中只有 1 个元素,它也应该可以工作:

from operator import add

rdd = sc.parallelize([('key1', 10),])

rdd.values().reduce(add)
# 10