【发布时间】:2016-10-26 16:20:03
【问题描述】:
我是 Hadoop 的新手,因此在一段代码上需要您的帮助。我的 Mapper 输出是:性别年龄
男 38
女 23
女26...100行这样
目标:我想计算男性的平均年龄和女性的平均年龄。这个想法似乎很简单,但我得到了错误的输出。请看一下我的减速器代码。
public static class AgeRed extends Reducer<Text, IntWritable, Text, IntWritable> {
public void Red(Text key, Iterable<IntWritable> values, Context context) throws IOException , InterruptedException {
int sum=0, count=0;
for(IntWritable i : values){
count++;
sum+=i.get();
}
int a =sum/count;
IntWritable avg = new IntWritable(a);
context.write(key, avg);
}
}
}
减速机输出:
女 23
女 26
.
.
男 38 ... 所有这样的行,但它没有像合并一样女性 23,26,28 ..
男38,34,42...
它没有组合键只排序它,我的减速器工作没有设置为零请帮助:(
【问题讨论】: