2012-02-16 24 views
5

加載和分組記錄後,如何將這些分組記錄存儲爲多個文件,每個組(一個用戶ID)?如何使用Pig將分組記錄存儲到多個文件中?

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

我使用Apache豬版本0.8.1-cdh3u3(rexported)

+0

嗯似乎MultiStorage在撲滿可能是我所期待的 http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/(?) java/src/main/java/org/apache/pig/piggybank/storage/MultiStorage.java?view = markup – thomers 2012-02-16 16:17:26

回答

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

的確,在Piggybank一個MultiStorage類不正是我想要的東西 - 它由一個指定的屬性拆分記錄(在我示例索引 '0'):

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

你知道如何做同樣的事情,但不是指定壓縮格式,而是將我的文件保存在RC格式? – Emtiaz 2014-01-08 19:26:04

+0

對不起Emtiaz,我不知道。 – thomers 2014-01-09 12:25:03

相關問題