1

ファイルをPigにロードするためにUDFを作成しました。テキストファイルの読み込みには適していますが、ファイルを読み取ることもできるようにする必要があり.gzます。.gzファイルを解凍してから処理できることはわかっていますが、解凍せずにファイルを読み取るだけです。

UDFをから拡張しLoadFunc、次にコスト入力ファイルに追加しますMyInputFile extends TextInputFormat。私も実装しMyRecordReaderました。TextInputFormat拡張が問題かどうか疑問に思っていますか?試しFileInputFormatましたが、まだファイルを読み取ることができません。.gz以前にファイルからUDF読み取りデータを書き込んだ人はいますか?

4

1 に答える 1

0

TextInputFormatgzipファイルも処理します適切なCompressionCodecが初期化されるRecordReaderの(LineRecordReader)initialize()メソッドを見てください。また、gzipファイルは分割可能ではないため(S3にある場合でも)、必要なレベルの並列処理を利用するには、分割可能形式(LZOなど)または非圧縮データを使用する必要がある場合があります。

gzipで圧縮されたデータがローカルに保存されている場合は、ここで説明するように、1つのステップで解凍してhdfsにコピーできます。または、すでにhdfs
hadoop fs -cat /data/data.gz | gzip -d | hadoop fs -put - /data/data.txtにある場合は、より便利です。

于 2012-12-23T21:27:21.037 に答える