当我编译hadoop命令时,它最终出现以下错误:“java.io.ioException:Type mismatch in key from map:expected org.apache.hadoop.io.text,received org.apache.hadoop.io.longwritable”
我将数据类型从Text更改为LongWritable,在这种情况下,我会得到其他数据类型不匹配。
主类:
public class CalculateMaximum {
public static void main(String [] args) throws IllegalArgumentException, IOException, ClassNotFoundException, InterruptedException{
Configuration config = new Configuration();
Job job = new Job(config);
job.setJarByClass(CalculateMaximum.class);
job.setMapperClass(CalculateMapper.class);
job.setNumReduceTasks(1);
job.setReducerClass(CalReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
FileSystem fs = FileSystem.get(config);
fs.delete(new Path(args[1]));
job.waitForCompletion(true);
}
}
映射器类:
public class CalculateMapper extends Mapper<LongWritable,Text,Text,IntWritable> {
public void cal(LongWritable key,Text values,Context context) throws IOException, InterruptedException{
String row = values.toString();
String []r1 = row.split(" ");
//Integer year = Integer.parseInt(row[0]);
Text yr = new Text(r1[0]);
Integer temp = Integer.parseInt(r1[1]);
IntWritable tp = new IntWritable(temp);
context.write(yr, tp);
//context.write(yr, tp);
}
}
减速器类:
public class CalReducer extends Reducer<Text,Iterable<IntWritable>,Text,IntWritable> {
public void cal(Text key,Iterable<IntWritable> values,Context context) throws IOException, InterruptedException{
//Iterable<IntWritable> tmps = values;
//int temp = tmps.get();
int max = 0;
for(IntWritable temp : values){
if(temp.get() > max){
max= temp.get();
}
context.write(key, new IntWritable(max));
}
}
}
1900 39
1900 14
1900 5
1900 11
1901 32
1901 40
1901 29
1901 48
1900 39
1901 48
我相信键和值都是int类型。您能尝试使用IntWritable for键吗?
那些年我们错过的响应式编程 > 原文链接 : The introduction to Reactive Programming you've been missing 作者 : @andrestaltz 译者 : yaoqinwei 校对者: bboyfeiyu、chaossss 状态 : 完成 相信你们在学习响应式编程这个新技术的时候都会充满了好奇,特别是它的一些变体,例如:Rx系列、Bacon
我的程序是采取任何类型的文件和打开他们自己。 我已经试过了 我只使用文件获得正确的数据。
问题内容: 这是我第一次真正使用列表和队列,因此这可能是一个非常简单的错误。是否因为我的队列中充满了无法转换为整数的对象? 问题答案: 除非您确实对性能至关重要,并且您使用了许多像int这样的原子类型,否则您确实应该使用Generics和ArrayList / ArrayDeque。然后,您应该看看 http://labs.carrotsearch.com/hppc.html
问题内容: 我正在编写一个Java程序,该程序读取一个单词文件。程序至关重要地依赖于此文件,因此,无论出于何种原因,在读取文件时都出现IOException,我确实希望程序结束。 结束程序的最佳方法是什么?我认为我被迫将文件读取包围在try / catch块中,因此我应该在catch中添加一个内部吗?例如,我应该做以下事情吗? 问题答案: 如果让异常一直传播到方法,程序将结束。无需调用,只需允许异
程序描述:人们使用jsliders输入用户分数,然后在游戏结束时点击按钮检查分数,它会告诉你谁得了第一、第二、第三等分数。 我不确定的是如何让程序告诉我得分最高的球员姓名。我把它分类了,它告诉你实际的分数,只是没有名字。 我基本上是在寻找: 代码:
我已经更改了我的应用程序的名称,一切都很好。在我的主屏幕或设置中,它显示得很好,但是当我按multitab时,在手机上显示所有正在运行的应用程序的那个,我没有看到我的应用程序名称,而是我的项目名称。或者至少我认为这是这样。这是我的应用程序图标在主屏幕图标的照片,这是打开多选项卡时显示的方式