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

时间:2016-02-24 04:21:03

标签: apache-spark

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

例如: 如果我的rdd看起来像这样:([(" x",2),(" y",1),(" x",3)] )和一个将值相乘的函数。我想将这两个插入到我新创建的名为collector的函数中,并将其作为回报([" x",6),(" y",1)]。

我想尽可能简单,但这是我第一次在pyspark编码,所以我不太清楚如何开始这个。

1 个答案:

答案 0 :(得分:0)

使用partitionbykey而不是PairRDD并致电mappartitions并提供您的功能。

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