3

*.tar.gz ファイルの束に対して Pig を実行している場合、PigStorage は解凍を正常に処理しますが、tar 内のファイル間のヘッダー行は処理されません。これを処理する簡単な方法はありますか?それとも、独自の RecordReader を作成する必要がありますか? そして、これはどのように見えるでしょうか?

4

1 に答える 1

5

tar を使用して、その場でヘッダーをクリーンアップできます。Pig スクリプトで、次のようにします。

--Call to tar that reads from stdin and outputs to stdout
DEFINE CLEANTAR `tar xvf - -O`;

--Now, remove tar headers from your data
cleaned = STREAM mydata THROUGH CLEANTAR;

編集:次の代替案を追加しました。

sed を使用して tar ヘッダーを削除することもできます。

--Remove tar headers using sed
DEFINE CLEANTAR `sed 's/[^\n]*\o000//g'`;

--Now, remove tar headers from your data
cleaned = STREAM mydata THROUGH CLEANTAR;
于 2013-06-11T14:08:43.863 に答える