2012-01-17 7 views
10

出力ファイルを2012117-part-r-00000の形式で出力します。基本的には、出力ファイルに日付を追加して、日付に従ってファイルを並べ替えることができます。私はOutputFormatとFileOutputFormatを見ましたが、私の場合は役に立ちません。hadoop出力ファイルにカスタム名を与える方法

答えて

5

MRジョブの出力ファイル名にはあまり柔軟性がありません。 MultipleOutputFormatのサブクラスを使用します。

MultipleOutputFormat#generateFileNameForKeyValueメソッドを実装する必要があります。このメソッドへの入力を無視し、date + -part-r- + mapred.task.partitionパターンの文字列を返します。 mapred.task.partitionはintなので、0を適切に埋め込んでおく必要があります。

+0

は、私たちはFileOutputFormat.setOutputNameのようなオプションを持っていたと思います以前のリリースの一つで、簡単な方法はありません(JobConfのために見つけましたジョブ、文字列名);また、私のレデューサークラスはすでにレデューサーを拡張していますので、別のクラスを拡張することは大変です。 – RFT

+0

Hadoop APIではそれが表示されません。 –

+0

しかし、私のレデューサークラスはすでに別のクラスを拡張していると述べましたが、静的クラスを組み込み、そのクラスをMultipleOutputFormatを拡張してから、どこかから呼び出すことはできますか? – RFT

関連する問題