您可以通过覆盖该Reducer.run()
方法的默认实现来完全简化您的减速器:
public void run(Context context) throws IOException, InterruptedException {
setup(context);
while (context.nextKey()) {
reduce(context.getCurrentKey(), context.getValues(), context);
}
cleanup(context);
}
您应该能够修改 while 循环以包括您的计数器,如下所示:
public void run(Context context) throws IOException, InterruptedException {
setup(context);
int count = 0;
while (context.nextKey() && count++ < 1000) {
reduce(context.getCurrentKey(), context.getValues(), context);
}
cleanup(context);
}
并不是说这不一定会输出最多的记录,而只会输出前 1000 个键控记录(如果您的 reduce 实现输出多于一条记录,则将不起作用 - 在这种情况下,您可以在 reduce 方法中增加计数器)