Карта уменьшить реализацию для каждого текстового файла

Мне нужно посчитать частоту каждого слова в документе, поэтому я хочу реализовать функции уменьшения карты для каждого текстового файла.Как реализовать map() и Reduce() для текстового файла?

И еще одна проблема в Map-Reduce заключается в том, что Map-Reduce записывает выходные данные из Reduce в один файл /user/output/part-0000, и проект должен записывать каждый обработанный файл в различные текстовые файлы, как это сделать?

1 ответ

Выполните шаги, указанные ниже:

  1. В файле задания вычислите количество входных файлов
  2. Задавать numreducers равно количеству входных файлов
  3. Присвойте файлам номера от 0 до n-1 и передайте эту информацию в распределенный кеш
  4. Получить имя файла в setup() метод маппер и получить назначенный номер для этого файла и назначить его некоторой статической переменной
  5. От Partitioner вернуть эту статическую переменную

Редуктор будет испускать n файлов.

Другие вопросы по тегам