В какой-то момент вы хотите сгруппировать его, потому что нет способа проверить четкость без объединения данных.
Ну, вы правы, как обмануть чит.И под читом я имею в виду, как бы я делал это в производственной среде только из-за того, как это просто, но в любом случае кажется грязным.
В выводе вашей консоли ищите «Уменьшить группы ввода =».Это говорит вам, сколько групп получили ваши редукторы.Одна группа отображается на один ключ, что означает, что каждый уникальный ключ представлен один раз.
Reduce input groups=146030
Вы можете создать свой собственный счетчик для подсчета групп, но число будет таким же.
... Затем используйте grep
или что-то в этом роде.
Вы также можете запросить статус задания через API в драйвере, если хотите получить значение счетчика.
Ваш другой вариант, который явно медленнее, потому что это дополнительная работа: первая фаза, подсчет слов;вторая фаза, подсчет строк.
Общий способ подсчета строк состоит в том, чтобы выдать ту же фиктивную строку, что и ключ, и 1 для каждой строки.По сути, ваша функция карты исключительно context.write(dummyText, one)
.Обязательно используйте комбинатор и установите количество редукторов на 1.