Если на этапе карты вы знаете, к какому файлу должна поступить запись, вы можете пометить вывод своей карты специальным ключом, указывающим, к какому файлу он должен идти.Например, если запись R1 должна идти в файл 1, вы должны вывести <1, R1> .. (1 - это ключ .. символическое представление для file1, а R1 - значение). Если запись R2 должна перейти в файл 2вывод вашей карты будет <2, R2>.
Тогда, если вы сконфигурируете карту сократить задание на использование только 2 редукторов ... это гарантирует, что все записи, отмеченные <1, _>, будут отправлены1 редуктор и <2, _> будут отправлены другому.
Это было бы лучше, чем ваше предпочтительное решение, поскольку вы по-прежнему просматриваете свою карту только один раз ... и в то же время это будет параллельно.