Как хранить сгруппированные записи в нескольких файлах с Pig? - PullRequest
5 голосов
/ 16 февраля 2012

После загрузки и группировки записей, как я могу сохранить эти сгруппированные записи в несколько файлов, по одному на группу (= идентификатор пользователя)?

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

Я использую Apache Pig версии 0.8.1-cdh3u3реэкспортируется)

Ответы [ 2 ]

8 голосов
/ 17 февраля 2012

Действительно, существует класс MultiStorage в Piggybank , который делает именно то, что я хочу - он разделяет записи по указанному атрибуту (в моем примере с индексом '0'):

STORE records INTO 'output' USING org.apache.pig.piggybank.storage.MultiStorage('output', '0', 'none', ',');
4 голосов
/ 15 мая 2015
 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' или 'none'
  4. fieldDel - Разделитель выходных записей.

Ссылка: GrepCode

...