我寫了我的UDF來加載文件到Pig中。它適用於加載文本文件,但是,現在我還需要能夠讀取.gz
文件。我知道我可以解壓縮文件然後處理,但我想只讀.gz
文件而不解壓縮。PIG UDF加載.gz文件失敗
我有我的UDF擴展從LoadFunc
,然後在我的成本輸入文件MyInputFile extends TextInputFormat
。我也實現了MyRecordReader
。只是想知道如果延伸TextInputFormat
是問題嗎?我試過FileInputFormat
,仍然無法讀取文件。有人在寫過UDF之前從.gz
文件中讀取數據?
'TextInputFormat'可以處理gzip文件。看看它的RecordReader('LineRecordReader')'initialize()'方法,其中適當的CompressionCodec被初始化。另請注意,gzip文件不可拆分。 –
感謝您指出這一點。如果它不可拆分,那麼我認爲我會考慮首先解壓縮它。非常感謝,如果你能指出一些最好的做法,先解壓縮文件然後加載到PIG。像這樣做的最好方法是什麼?謝謝。 –
不知道數據大小,最簡單的方法是將數據_uncompressed_存儲在hdfs上。您也可以使用可拆分格式('LZO')對其進行重新打包。如何提取gzip文件;本地磁盤 - > HDFS,請參閱: http://bigdatanoob.blogspot.hu/2011/07/copy-and-uncompress-file-to-hdfs.html。如果已經在hdfs上:''hadoop fs -cat /data/data.gz | gzip -d | hadoop fs -put -/data/data.txt' –