我希望输出文件的格式为2012117-part-r-00000.基本上我希望输出文件附加日期,以便我可以根据日期排列文件.我查看了OutputFormat和FileOutputFormat,但它对我的情况没有帮助.
MR作业的输出文件名没有太大的灵活性.使用MultipleOutputFormat的子类.
所述MultipleOutputFormat#generateFileNameForKeyValue方法必须被实施,忽略输入到该方法中,并在返回字符串date + -part-r- + mapred.task.partition图案.mapred.task.partition是一个int,所以它必须预先用0填充.
有两种方法可以更改输出文件名。
\n\n1.通过使用 Java 类 MultipleOutputFormat。
\n\n// job.setOutputFormatClass(TextOutputFormat.class);\nLazyOutputFormat.setOutputFormatClass(job, TextOutputFormat.class);\nMultipleOutputs.addNamedOutput(job,\xe2\x80\x9c20180318\xe2\x80\x9d, TextOutputFormat.class, Text.class, IntWritable.class);\nRun Code Online (Sandbox Code Playgroud)\n\n2.通过使用
\n\njob.getConfiguration().set(\xe2\x80\x9cmapreduce.output.basename\xe2\x80\x9d, \xe2\x80\x9c20180318\xe2\x80\x9d);\nRun Code Online (Sandbox Code Playgroud)\n\n\n
| 归档时间: |
|
| 查看次数: |
12884 次 |
| 最近记录: |