public static class MapClass extends MapReduceBase implements
Mapper<LongWritable, Text, Text, IntWritable> {
private Text word = new Text();
public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
String line = value.toString();
String num = Integer.parseInt(line);
IntWritable one = new IntWritable(num);
word.set(「key」);
output.collect(word, one);
}
}
public static class Reduce extends MapReduceBase implements
Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output, Reporter reporter)
throws IOException {
int sum = 0;
int count = 0;
int avg = 0;
while (values.hasNext()) {
sum += values.next().get();
count++;
}
avg = sum/count;
output.collect(key, new IntWritable(count));
}
}
看到output.collect()特別,我打印鍵&計數值.. 對於任何輸入文件,輸出爲 鍵2 請幫我... (如何輸出始終是2,即使100號作爲輸入??)map-reduce代碼的輸出是什麼?
conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(MapClass.class); conf.setCombinerClass(Reduce.class); conf.setReducerClass(Reduce.class); – Amnesiac
你可以編輯你的問題。不要垃圾評論。 – Jeremy
我沒有發表任何評論.. – Amnesiac