2012-02-16 11 views
5

Kayıtları yükledikten ve gruplandırdıktan sonra, bu gruplandırılmış kayıtları, grup başına bir (= kullanıcı) olan birkaç dosyaya nasıl kaydedebilirim? belirtilen bir özelliğe göre kayıtları böler -Gruplanmış kayıtları Pig ile birden çok dosyada nasıl depolanır?

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

İstediğim tam olarak ne yapar Piggybank bir MultiStorage sınıf vardır, (rexported) Apache Domuz sürüm 0.8.1-cdh3u3 Nitekim

+0

Hmm o Piggybank içinde multistorage ben http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/ ne arıyorum olabilir görünüyor (?) java/src/main/java/org/apache/domuz/piggybank/depolama/MultiStorage.java? view = işaretleme – thomers

cevap

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

Parametreler:

  1. parentPathStr - Veli Çıktı dir yolu
  2. splitFieldIndex - anahtar alanı indeksi
  3. sıkıştırma - 'bz2', 'bz', 'gz' veya 'hiçbiri'
  4. fieldDel - Çıkış kaydı alan sınırlayıcısı.

Referans: GrepCode

8

kullanıyorum (benim gibi indeks '0' da):

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

Nasıl yapılacağını biliyor musunuz, ancak bir sıkıştırma biçimi belirtmek yerine, dosyalarımı RC'de depolamak istiyorum Biçim? – Emtiaz

+0

Üzgünüm Emtiaz, bilmiyorum. – thomers