Loading

Hadoop中的setOutputKeyClass和setOutputValueClass

https://blog.csdn.net/qq_16403141/article/details/77598532

 

setOutputKeyClass和setOutputValueClass默认是同时设置map和reduce的输出类型的。

想要分别设置map和reduce的输出类型,有如下解决办法:
当K2, V2 和K3 , V3类型不一致时,我们需要用setMapOutputKeyClass和setMapOutputValueClass来设置map的输出类型。仍以K2, V2类型为Text,Text而K3, V3类型为Text,IntWritable为例,设置如下:

job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);

 

setMapOutputKeyClass和setMapOutputValueClass会覆盖setOutputKeyClass和setOutputValueClass设置的效果,这样一来,setMapOutputKeyClass和setMapOutputValueClass设置的是map的输出类型,而setOutputKeyClass和setOutputValueClass设置的就只是reduce的输出类型。

posted @ 2020-05-04 18:15  拾月凄辰  阅读(489)  评论(0编辑  收藏  举报