我现在有一个mapreduce程序 MultipleOutputs
将结果输出到多个文件中。减速器如下所示:
private MultipleOutputs mo = new MultipleOutputs<NullWritable, Text>(context);
...
public void reduce(Edge keys, Iterable<NullWritable> values, Context context)
throws IOException, InterruptedException {
String date = records.formatDate(millis);
out.set(keys.get(0) + "\t" + keys.get(1));
parser.parse(key);
String filePath = String.format("%s/part", parser.getFileID());
mo.write(noval, out, filePath);
}
这与《hadoop:the definitive guide》一书中的示例非常相似,但问题是它将文件输出为纯文本。我想我的文件输出为.csv文件,但还没有设法找到一本书或网上对它的解释。
如何做到这一点?
1条答案
按热度按时间xpcnnkqh1#
在驱动程序中的作业对象完成后,是否尝试遍历输出文件夹以重命名文件?
只要您在reducer中发出(文本应该是csv中用分号或任何您需要的分隔符分隔的值的行),您就可以尝试这样做: