Hadoop中的setOutputKeyClass和setOutputValueClass
Posted 拾月凄辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop中的setOutputKeyClass和setOutputValueClass相关的知识,希望对你有一定的参考价值。
https://blog.csdn.net/qq_16403141/article/details/77598532
setOutputKeyClass和setOutputValueClass默认是同时设置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的输出类型。
以上是关于Hadoop中的setOutputKeyClass和setOutputValueClass的主要内容,如果未能解决你的问题,请参考以下文章