MapReduce - 迭代减速器中的键和值

时间:2016-01-09 22:32:08

标签: python hadoop mapreduce mrjob

我无法理解如何迭代值。我有一个映射器,它将传递类似:

(cat, *): 5
(cat, *): 5
(cat, dog): 1
(pigeon, dog): 1
(hello, world): 1
(cat, dog): 1
(pigeon, dog): 1
(hello, world): 1

我试图在其中找到任意键/值对的总值,以便我可以将其用于某些统计分析。然后,我试图将其他键值对的计数总和作为变量,将其除以' *'总价值。

def reducer(self, pair, counts):

从上面的代码行开始,我将如何迭代?

从映射器中我得到:(item, neighbour), 1(item, '*'), 1

我理解这些项是生成器对象,因此我必须迭代for循环才能实际执行任何操作。

编辑:从文本文件中读取数据,然后在映射器中将其传递为:

yield(word1, word2): 1

预期产出:

(cat, dog): 0.33333333

计算为cat,dog word对的数量除以对的总数(cat,*)。

为了更清楚一点,我试图在here has suggested.

中实现答案

0 个答案:

没有答案