Карта уменьшить реализацию для каждого текстового файла
Мне нужно посчитать частоту каждого слова в документе, поэтому я хочу реализовать функции уменьшения карты для каждого текстового файла.Как реализовать map() и Reduce() для текстового файла?
И еще одна проблема в Map-Reduce заключается в том, что Map-Reduce записывает выходные данные из Reduce в один файл /user/output/part-0000, и проект должен записывать каждый обработанный файл в различные текстовые файлы, как это сделать?
1 ответ
Выполните шаги, указанные ниже:
- В файле задания вычислите количество входных файлов
- Задавать
numreducers
равно количеству входных файлов - Присвойте файлам номера от 0 до n-1 и передайте эту информацию в распределенный кеш
- Получить имя файла в
setup()
метод маппер и получить назначенный номер для этого файла и назначить его некоторой статической переменной - От
Partitioner
вернуть эту статическую переменную
Редуктор будет испускать n файлов.