我想将 Reducer 结果写入普通文件(例如 .csv 或 .log 文件)而不是写入 HDFS。所以我在reducer类中使用了以下代码:
@Override
public void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException {
// Standard algorithm for finding the max value
long sum = 0;
for (LongWritable value : values) {
sum++;
}
context.write(key, new LongWritable(sum));
System.out.println(key + " : " + sum);
Main.map.put(key.toString(), sum);
}
我将地图的内容打印到 Main 类的 csv 文件中。但是,reducer 完成后,文件为空。我发现地图是空的,因为在减速器类中它没有将任何内容放入地图中,而且我在控制台的减速器中也看不到任何 System.out.println(key + " : " + sum) 。
怎么可能?它们不是在减速器类中处理的吗?