对于每个中间键,每个reducer任务都可以发出:任意多个最终键值对。对这些“n”个键值对的类型没有限制(即,它们可以是异构的)。或只要所有键都具有相同的类型,并且所有值都具有相同的类型,就可以根据需要选择多个最终的键值对。
bnlyeluc1#
“随心所欲”是真的,对输出对的数量没有限制(当然只要有足够的空间)。输出键的类型和输出值的类型是在main方法(在旧api的driver类中)中预定义的,Map输出键和值的类型也是预定义的。设置方式如下:
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
分别。您只需要设置Map输出的类型,如果它与reduce输出不同。如果您想输出更多类型,那么可以使用multipleoutputs。
1条答案
按热度按时间bnlyeluc1#
“随心所欲”是真的,对输出对的数量没有限制(当然只要有足够的空间)。
输出键的类型和输出值的类型是在main方法(在旧api的driver类中)中预定义的,Map输出键和值的类型也是预定义的。设置方式如下:
以及
分别。
您只需要设置Map输出的类型,如果它与reduce输出不同。
如果您想输出更多类型,那么可以使用multipleoutputs。