1
我正在維護一個簡單的hadoop作業,它將生成CSV文件作爲HDFS中的輸出。該作業使用TextOutputFormat。 我想將首行標題行添加到csv文件中(我知道部分文件是由不同的工作人員創建的,如果每個人都獲取標題,這不是問題)。 如何做到這一點?Hadoop TextOutputFormat:將標題添加到CSV輸出
編輯:層疊可以help但乍一看我不想開始使用新的框架
編輯:
所以我想添加標題爲輸出CSV文件。列數 是確定性的。 這裏是我的減速器類的骨架:
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;
public final class Reducer extends Reducer<Text, IntWritable, Text, IntWritable>
{
private MultipleOutputs<Text, IntWritable> mos;
private static final Text KEY_HOLDER = new Text();
private static final IntWritable VALUE_HOLDER = new IntWritable(1);
@Override
public void setup(final Context context)
{
mos = new MultipleOutputs<Text, IntWritable>(context);
}
@Override
public void cleanup(final Context context) throws IOException, InterruptedException
{
mos.close();
}
@Override
public void reduce(final Text key, final Iterable<IntWritable> values, final Context context)
throws IOException, InterruptedException
{
// [... some business logic ...]
mos.write(KEY_HOLDER, VALUE_HOLDER, "myFileName");
context.progress();
}
}
爲什麼downvote?如果問題沒有意義,請告訴我。 – gyorgyabraham
您可以在您的映射器或縮減器中添加標題嗎?您可以在真實數據之前輸出標題。 – zsxwing
請顯示一些代碼,從您的描述我們無法幫助你。 –