Я хотел записать заголовок в выходной файл перед содержимым моей функции Reduce. Как мне это сделать?
Вот мои функции Map и Reduce -
public static class MapForWordCountWithoutWorld extends Mapper<LongWritable, Text, Text, IntWritable> {
static Date lastDate = new Date(120, 4, 8);
static Date ignoreDate = new Date(119, 12, 31);
public void map(LongWritable key, Text value, Context con) throws IOException, InterruptedException {
String line = value.toString();
String[] words = line.split(",");
if (words[0].equals("date")) {
return;
}else if(!words[1].toLowerCase().equals("world")){
try {
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(words[0]);
if(date1.getYear() > 119) {
if (date1.before(lastDate) || date1.equals(lastDate)) {
Text outputKey = new Text("Infected Population");
IntWritable outputValue = new IntWritable(new Integer(words[2]));
con.write(outputKey, outputValue);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static class ReduceForWordCount extends Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text word, Iterable<IntWritable> values, Context con)
throws IOException, InterruptedException {
int sum = 0;
for (IntWritable value : values) {
sum += value.get();
}
con.write(word, new IntWritable(sum));
}
}
Сейчас я получаю только пару ключ-значение. Но не удалось добавить заголовок в выходной файл