Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 仅使用单个元素的RDD上的PySpark Reduce_Apache Spark_Pyspark_Rdd_Reduce - Fatal编程技术网

Apache spark 仅使用单个元素的RDD上的PySpark Reduce

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

不管怎样,只有一个元素可以处理RDD吗(我正在做的事情有时会发生这种情况)?在这种情况下,reduce停止工作,因为操作需要2个输入

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

(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)
似乎解决了这个问题。非常感谢,朋友。