Я хочу, чтобы выходные файлы были в формате 2012117-part-r-00000. В основном я хочу, чтобы в выходном файле была добавлена дата, чтобы я мог упорядочить файлы в соответствии с датой. Я посмотрел на OutputFormat и FileOutputFormat, но это не помогает моему делу.
Как указать пользовательское имя для файлов вывода hadoop
Ответ 1
Я только что узнал о новом API, я могу использовать org.apache.hadoop.mapreduce.lib.output.MultipleOutputs и метод addNamedOutput()
Ответ 2
В имени выходного файла задания MR нет большой гибкости. Используйте подклассы MultipleOutputFormat.
Метод MultipleOutputFormat # generateFileNameForKeyValue должен быть реализован, игнорировать входы этого метода и возвращать строку в шаблоне date + -part-r- + mapred.task.partition
. mapred.task.partition - это int, поэтому он должен быть предварительно вставлен с 0 соответствующим образом.