地图可以计数一次以上的发生次数吗?

时间:2018-11-29 12:39:21

标签: hadoop mapreduce

我在一个教程中读到Map像这样对字典中的每个单词进行计数: ('house', 1)

然后在一个巨大的文本中,它可能多次出现“ house”一词。因此,Reduce函数将占用Map函数中存在的(house,1)数,并且如果在文档中找到('house',100)的次数为100,则会进行迭代。

这是如何工作的?为什么第二次Map函数找不到单词'house'却没有存储('house',2)

1 个答案:

答案 0 :(得分:0)

在输入中的每个项目上都会调用Mapper,然后它会发出一系列中间键/值对。

这些键/值对如下所示:(功能,部分汇总值)(房屋,1)。之后,将给定键的所有发射值分组在一起,例如((功能,(value1,value2等))或(房屋,(1、1、1、1、1、1 ))

最后,Reducer从该功能的所有中间值计算最终的合计结果。因此,((功能,(值1,值2等))变成((功能,totalValue))。或(房屋,(1、1、1、1、1, 1))变为(房子,5)

Mapper不计算该功能(或示例中的单词)出现的次数,它只是将输出拆分为(功能,值)。 Reducer的工作是为功能计算最终的合计。否则,Reducer的目的是什么?

我需要指定我当前正在学习Hadoop和MapReduce编程模型。因此,如果我错了,请纠正我。