0

我是第一次使用 pyspark。

我希望我的 reducer 任务迭代从映射器返回的值,就像在 java 中一样。

我看到只有累加器选项而不是迭代 - 就像在添加函数 add(data1,data2) => data1 是累加器一样。

我想在我的输入中输入一个包含属于键的值的列表。

例子

这就是我想做的。任何人都知道是否有这样做的选择?

4

1 回答 1

0

请使用 reduceByKey 函数。在python中,它应该看起来像

from operator import add
rdd = sc.textFile(....)
res = rdd.map(...).reduceByKey(add)

注意:Spark 和 MR 有根本的区别,所以建议不要强行匹配。Spark 也很好地支持配对函数,如果你想要更高级的东西,请寻找 aggregateByKey。

顺便说一句,在 spark docs 中深入讨论了字数问题(尤其是 flatmap 的用法),您可能想看看

于 2015-05-18T04:14:13.390 回答