В типичном примере WordCount имя файла, который обрабатывает файл карты, игнорируется, поскольку выходные данные задания содержат общее количество слов для всех входных файлов, а не на уровне файлов. Но чтобы получить количество слов на уровне файла, необходимо использовать имя входного файла. Картографы, использующие Python, могут получить имя файла с помощью команды os.environ["map.input.file"]
. Список переменных среды выполнения задач: здесь .
Преобразователь вместо простого указания пары ключ / значение как <Hello, 1>
также должен содержать имя обрабатываемого входного файла. Следующее может быть выведено картой <input.txt, <Hello, 1>>
, где input.txt - это ключ, а <Hello, 1>
- это значение.
Теперь все подсчеты слов для определенного файла будут обрабатываться одним редуктором. Затем редуктор должен агрегировать количество слов для этого конкретного файла.
Как обычно, Combiner поможет уменьшить разболтанность сети между картографом и редуктором, а также быстрее завершить работу.
Проверьте Интенсивная обработка текста с помощью MapReduce , чтобы узнать больше алгоритмов обработки текста.