Может ли карта считать события более одного раза? - PullRequest
0 голосов
/ 29 ноября 2018

Я прочитал в учебнике, что Map считает каждое слово в словаре следующим образом: ('house', 1).

Тогда в огромном тексте оно может найти слово «дом» много раз.Следовательно, функция Reduce будет принимать столько же (house, 1), сколько существует из функции Map, и будет повторять, давая ('house',100), если она найдет его 100 раз в документе.

Это так работает?Почему во второй раз, когда функция Map находит слово «дом», оно не сохраняется ('house',2)?

1 Ответ

0 голосов
/ 30 ноября 2018

Mapper вызывается для каждого элемента в вашем входе, а затем он генерирует серию промежуточных пар ключ / значение.

Эти пары ключ / значение выглядят следующим образом: (функция, частичное совокупное значение) или (дом, 1) в вашем примере.После этого все выданные значения для данного ключа группируются вместе, например, (функция, (значение1, значение2 и т. Д.) или (дом, (1, 1, 1, 1, 1)) .

В итоге редуктор вычисляет итоговый совокупный результат по всем промежуточным значениям для этого признака. Таким образом, (признак, (значение1, значение2 и т. Д.) становится (функция, totalValue) . Или (дом, (1, 1, 1, 1, 1)) становится (дом, 5) .

Mapper не считает, сколько раз встречается эта функция (или слово в вашем примере), он просто разбивает выходные данные как (функция, значение). Задачей редуктора является вычисление окончательного агрегата для функцииВ противном случае, какова будет цель редуктора?

Мне нужно указать, что я в настоящее время изучаю Hadoop и модель программирования MapReduce. Таким образом, если я ошибаюсь, поправьте меня.

...