我无法理解如何迭代值。我有一个映射器,它将传递类似:
(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.
中实现答案