我正在使用compositeinputformat执行一个map-side连接。甚至没有调用mapper函数。下面是两个文件。
文件a-密钥值
1#1;1
1#1;2
1#1;3
1#1;5
2#2;2
2#2;2
3#3;2
3#3;3
5#5;2
5#5;2
文件b-键值
1#1;1
1#1;1
1#1;1
1#1;1
源代码
Path left= new Path(args[0]);
Path rigth = new Path(args[1])
String separator = "#";
Configuration config = new Configuration();
config.set("mapreduce.input.keyvaluelinerecordreader.key.value.separator", separator);
String joinExpression = CompositeInputFormat.compose("inner", KeyValueTextInputFormat.class, left, rigth);
config.set("mapreduce.join.expr", joinExpression);
Job job = Job.getInstance(config);
job.setJobName("Blah");
job.setJarByClass(Blah.class);
job.setMapperClass(PreditorasMapper.class);
job.setReducerClass(PreditorasReducer.class);
job.setInputFormatClass(CompositeInputFormat.class);
FileOutputFormat.setOutputPath(job, new Path(args[2]));
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
System.exit(job.waitForCompletion(true) ? 0 : 1);
有什么问题吗?
1条答案
按热度按时间6kkfgxo01#
问题出在mapper类中。
我用的是:
而不是: