Звучит как простая работа, но с MapReduce все не так просто.
У меня есть N файлов, в которых для каждого файла есть только одна строка текста. Мне бы хотелось, чтобы Mapper выводил пары ключ-значение, такие как <имя_файла, оценка>, в которых «оценка» - это целое число, вычисленное по строке текста. В качестве идентификатора я использую приведенный ниже фрагмент кода (надеюсь, это правильно).
FileSplit fileSplit = (FileSplit)reporter.getInputSplit();
String fileName = fileSplit.getPath().getName();
Если маппер выполняет свою работу правильно, он должен вывести N пары значений ключа.
Теперь проблема в как мне запрограммировать редуктор для вывода пары «ключ-значение» с максимальным «счетом» ?
Из того, что я знаю, Reducer работает только с парами ключ-значение, которые имеют один и тот же ключ. Поскольку выходные данные в этом сценарии имеют разные ключи, я предполагаю, что что-то должно быть сделано до шага уменьшения. Или, может быть, следует полностью исключить шаг уменьшения?