В программе уменьшения количества слов на карте необходимо выбрать файлы, в которых есть слова - PullRequest
0 голосов
/ 01 июля 2019

Я читаю несколько входных файлов для проблемы подсчета слов.

Примеры имен файлов: file1.txt file2.txt file3.txt

Я могу получить количество слов, но чтодолжен быть добавлен, если я также хочу получить имена файлов вместе с количеством, где существуют слова.

для примера,

Содержимое файла 1: добро пожаловать в Hadoop

Содержимое файла 2: Это hadoop

Текущий вывод:

Hadoop 2

Is 1

This 1

To 1

Добро пожаловать 1

Ожидаемый вывод:

Hadoop 2 File01.txt File02.txt

Is 1 File02.txt

This 1 File02.txt

To 1 File01.txt

Welcome 1 File01.txt

1 Ответ

1 голос
/ 04 июля 2019

1-й вводите разделение String file = ((FileSplit)inputSplit).getPath().getName(); и собирайте слово и имя файла из mapper в качестве вывода.

В редукторе подсчитайте имя файла по ключу, увеличьте счетчик и продолжайте добавлять имя файла.

   file += filename;
   textString = counter + file;
   output.collect(key,new Text(textString));

Это решило проблему.

...