大数据 之 谜 之 低级bug

本文详细解析了Hadoop MapReduce中常见的类型不匹配错误:java.io.IOException: Type mismatch in key from map,解释了错误原因在于Map函数输出的键类型与预期不符,并提供了检查和修改设置的具体步骤,帮助读者理解并解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.LongWritable, recieved org.apache.hadoop.io.Text
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:406)

解决方法:

这个错误信息已经显示,要求的输出的KEY是TEXT类型,但返回LongWritable类型

查看一下设置map的输出类型,然后再看看Map函数输出的参数是否和它保持一致。

这里设置的是输出key和value都是Text类型

[java] view plain copy
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);

但是继承Mapper函数的时候,没有指定输出参数类型,因为默认的输入格式TextInputFormat产生的键类型是LongWritable,说到这里应该知道怎么改了吧。还不知道怎么改的,参考如下

也可以 查看的Driver类 看的类型是否是 setOutPutKeyClass(Text.class)
错误例图:
在这里插入图片描述
正确例图:
在这里插入图片描述
总结::::
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值