Apache spark pyspark如何在不使用combineByKey或任何reduce的情况下收集值?

Apache spark pyspark如何在不使用combineByKey或任何reduce的情况下收集值?,apache-spark,Apache Spark,我正在尝试实现我自己的比combineByKey更简单的函数,它基本上只接受一个函数和一个迭代器,并返回应用该函数的键值对 例如: 如果我有这样的rdd:((((((“x”,2),(“y”,1),(“x”,3)])和一个将值相乘的函数。我想将这两个函数都插入到我新创建的名为collector的函数中,并得到相应的结果([((“x”,6),(“y”,1)]) 我想让它尽可能简单,但这是我第一次在pyspark中编码,所以我不太确定如何开始。使用partitionbykeyoverPairRDD调用

我正在尝试实现我自己的比combineByKey更简单的函数,它基本上只接受一个函数和一个迭代器,并返回应用该函数的键值对

例如: 如果我有这样的rdd:((((((“x”,2),(“y”,1),(“x”,3)])和一个将值相乘的函数。我想将这两个函数都插入到我新创建的名为collector的函数中,并得到相应的结果([((“x”,6),(“y”,1)])


我想让它尽可能简单,但这是我第一次在pyspark中编码,所以我不太确定如何开始。

使用
partitionbykey
over
PairRDD
调用
mappartitions
并提供您的函数


partitionebykey
确保在相同的分区中存在相同的键。

使用'groupByKey',它将返回您的groupedvalue上的迭代器。为什么不减少ebykey并在那里相乘?@Urban48它们实际上都使用combineBykey,这正是我试图避免的:(@Pankaj Arora这也使用combineBykey,这正是我试图避免的:(