2017-03-10 5 views
0

をロード -Apacheの豚は、私が同じスキーマに付着した私のコンテンツを含む、以下のフォルダ構造を持つ複数のファイルに

/project/20160101/part-v121 
/project/20160105/part-v121 
/project/20160102/part-v121 
/project/20170104/part-v121 

私は&プロセスに個々のファイルをロードするためにJSONLoaderを使用して豚のスクリプトを実装しています。しかし、私はそれを日付のフォルダの下にあるすべてのファイルを読むために一般的にする必要があります。

は今の私は、次を使用してファイルパスを抽出するために管理している -

hdfs -ls hdfs://local:8080/project/20* > /tmp/ei.txt 
cat /tmp/ei.txt | awk '{print $NF}' | grep part > /tmp/res.txt 

今、私は私のプログラムは、すべてのファイル上で実行されるように、私は豚のスクリプトに、このリストを渡すん方法を知っておく必要があります。

答えて

0

LOADに正規表現のパスを使用できます。

ご迷惑をお掛けした場合は、下記の声明を参考にしてください。

A = LOAD 'hdfs://local:8080/project/20160102/*' USING JsonLoader(); 

入力ディレクトリに.pig_schema(JsonStorage製)があると仮定します。

参考https://pig.apache.org/docs/r0.10.0/func.html#jsonloadstore

+0

は、先にそれを言及している必要があります。私はcom.twitter.elephantbird.pig.load.JsonLoaderを使用しています。これは象の鳥にとってもうまくいくのだろうか。 – user1619355

+0

わからない、試してみてください –

関連する問題