AWS Имеет oop MapReduce - Среднее количество слов - PullRequest
1 голос
/ 19 февраля 2020

Привет У меня есть файл данных CSV, как показано ниже.

автобус, поезд, автобус, ПОЕЗД, автомобиль, автобус, Поезд, CAr, автомобиль, Поезд, Корзина, Автобус, Велосипед, Велосипед, Автомобиль, Автобус, Корзина, Тележка, Велосипед, Маховое колесо

Мне нужно посчитать среднее количество слов в приведенном выше CSV с помощью MapReduce.

Например: шина = 5/20 = 0,25

Я могу легко подсчитать количество слов, но мне нужно общее количество записей (в данном случае 20), чтобы взять среднее число слов. Но передать это, чтобы уменьшить функцию, используя глобальные переменные, не получилось. Я попытался передать это как пару ключ-значение на карте. Ключ = «Общее» значение = общее количество на вход редуктора. Это также не было успешным.

Есть ли какие-либо предложения по передаче общего подсчета из функции карты в функцию редуктора?

Я использовал одного ведущего и 3 подчиненных в кластере EMR, если это часть необходимой информации.

Заранее спасибо !!!

1 Ответ

2 голосов
/ 19 февраля 2020

Как только у вас есть пары (K, V), где K - это слово, а V - раз, когда оно появляется, вы можете отобразить все на одну клавишу, скажем (W, (K, V)). Теперь вы можете уменьшить, чтобы получить общее количество слов. Затем вы можете сделать еще один шаг карты / уменьшения, чтобы объединить старые ключи с новым счетчиком. Надеюсь, это поможет.

...