如何配置hadoop的mapper,使其需要< text,intwritable>

xxls0lw8  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(338)

我用了两个制图器和两个减缩器。我得到以下错误:
java.lang.classcastexception:org.apache.hadoop.io.longwritable不能转换为org.apache.hadoop.io.text
这是因为第一个减速机 <Text, IntWritable> 我的第二个Map绘制者 <Text,IntWritable> 但是,正如我读到的,Map绘制者 <LongWritable, Text> 默认情况下。
所以,我必须设置输入格式如下:

job2.setInputFormatClass(MyInputFormat.class);

有没有办法将inputformat类设置为接收 <Text,IntWritable> ?

3zwtqj6y

3zwtqj6y1#

Map器的输入类型由您怀疑的inputformat设置。
一般来说,当你像这样把工作链接在一起时,最好使用 SequenceFileOutputFormat 在下一份工作中 SequenceFileInputFormat . 通过这种方式,可以为您处理类型,并将类型设置为相同的,即Map器输入与以前的reducer输出相同。

a6b3iqyw

a6b3iqyw2#

您不需要自己的输入格式。您只需为第一个作业设置sequencefileoutputformat,为第二个作业设置sequencefileinputformat。
textinputformat使用长可写键和文本值,但是sequencefileinputformat使用任何用于存储输出的类型。

相关问题