2012-02-16 3 views
5

レコードをロードしてグループ化した後、グループ化されたレコードを複数のファイル(グループごとに1つ(= userid))に保存するにはどうすればよいですか?それが指定された属性によってレコードを分割 -グループ化されたレコードをPigで複数のファイルに保存する方法は?

records = LOAD 'input' AS (userid:int, ...); 
grouped_records = GROUP records BY userid; 

は私が望むまさにんPiggybankMultiStorageクラスがあり、(rexported)Apacheの豚バージョン0.8.1-cdh3u3実際

+0

うーん、貯金箱でMultiStorageは私が http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/を探していますどのような可能性がありそうです(?) – thomers

答えて

4
A = LOAD 'mydata' USING PigStorage() as (a, b, c); 
STORE A INTO '/my/home/output' USING MultiStorage('/my/home/output','0', 'bz2', '\\t'); 

パラメータ:

  1. parentPathStr - 親出力ディレクトリパス
  2. splitFieldIndex - キーフィールドインデックス
  3. 圧縮 - 'BZ2'、 'BZ'、 'GZ' または 'なし'
  4. fieldDel - 出力レコード区切り文字。

参考:GrepCode

8

を使用しています(私の例では、インデックス '0' で):

STORE records INTO 'output' USING org.apache.pig.piggybank.storage.MultiStorage('output', '0', 'none', ','); 
+0

圧縮フォーマットを指定する代わりに、同じ方法を知っていますか?ファイルをRCに保存したいのですか?フォーマット? – Emtiaz

+0

申し訳ありませんEmtiaz、私は分かりません。 – thomers

関連する問題