我是第一次与pyspark合作。
我希望我的reducer任务迭代使用mapper中的键返回的值,就像在java中一样。
我看到只有累加器选项而不是迭代 - 就像添加函数add(data1,data2)=> data1是累加器。
我希望在输入中输入一个包含属于该键的值的列表。
这就是我想要做的。有人知道是否有选择吗?
答案 0 :(得分:0)
请使用reduceByKey功能。在python中,它应该看起来像
from operator import add
rdd = sc.textFile(....)
res = rdd.map(...).reduceByKey(add)
注意:Spark和MR具有基本差异,因此建议不要强制适合彼此。 Spark也很好地支持对函数,如果你想要更高级的东西,请寻找aggregateByKey。
顺便说一下,在spark文档中深入讨论了字数统计问题(特别是使用flatmap),你可能想看看