gpt4 book ai didi

hadoop - 带有Hadoop的MapReduce:类型不匹配

转载 作者:行者123 更新时间:2023-12-02 21:55:42 25 4
gpt4 key购买 nike

我正在运行一个简单的hadoop程序,但出现以下错误:

java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org.apache.hadoop.io.LongWritable

映射器:
public static class myMapper extends Mapper<LongWritable, Text, Text, Text>
public void map(LongWritable key, Text line,OutputCollector<Text,Text> output, Reporter reporter) throws IOException, InterruptedException

reducer :
public static class triangleCounterReducer extends Reducer<Text, Text, Text, Text> 
public void reduce(Text key,Iterable<Text> line,OutputCollector<Text,Text> output,Reporter reporter) throws IOException, InterruptedException

主要:
...
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
...

我怎样才能解决这个问题????

最佳答案

看起来您在使用新的API类(映射程序扩展了mapred.Mapper),但是您已经使用旧的API编写了映射方法(您正在使用OutputCollector和Reporter)

将您的映射器 map 签名和reducer reduce方法更改为以下内容:

public void map(LongWritable key, Text value, Context context) { .. }
public void reduce(Text key, Iterable<Text> value, Context context) { .. }

如果在方法上方添加 @Override批注,也会有帮助,如果签名错误,将导致编译器失败。

关于hadoop - 带有Hadoop的MapReduce:类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com