2014-11-14 3 views
-2

Для каждого промежуточного ключа, каждая задача редуктора может испускать:MapReduce - промежуточный ключ и выход

  • Как много конечных пар ключ-значение по желанию. Нет ограничений на типы этих «n» пар ключ-значение (т. Е. Они могут быть гетерогенными).

ИЛИ

  • Поскольку многие конечные пары ключ-значение по желанию, до тех пор, как все ключи имеют одинаковый тип и все значения имеют один и тот же тип.

ответ

0

«Столько, сколько пожелаете» верно, нет ограничений на количество выходных пар (если есть достаточное пространство, конечно).

Тип выходных ключей и тип выходных значений предопределены в основном методе (в классе драйвера старого API), а также типе ключей и значений выхода карты. Те, устанавливаются следующим образом:

conf.setOutputKeyClass(VIntWritable.class); //just an example 
conf.setOutputValueClass(Text.class); //just an example 

и

conf.setMapOutputKeyClass(VIntWritable.class); //just an example 
conf.setMapOutputValueClass(LongWritable.class); //just an example 

соответственно.

Вам нужно только установить тип вывода карты, если он отличается от результата уменьшения.

Если вы хотите вывести больше типов, то вы можете использовать MultipleOutputs.