Сохраните вывод задания pig в структуру каталогов, полученную из данных

Я хотел бы добиться следующего:

Мои входные данные выглядят следующим образом

{"metadata":
{
"producerName":"capture_api",
"producerVersion":"3.0.13"
},
"payload":
{
--some payload 
}
}

Я хотел бы объединить эти данные, используя скрипт свиньи следующим образом

/finalOutputDir/producerName/producerVersion/File.txt

Есть ли способ, которым я могу сделать это. Я пытался использовать функцию MultiStorage, но этот класс поддерживает только одно поле. Я могу переопределить функциональность внутри многоступенчатой, но просто хотел проверить, есть ли более простой вариант.

1 ответ

Копилка MultiStorage может разделять данные на несколько папок с помощью (только одного?) Поля.

STORE data INTO '$out/$producerName' USING org.apache.pig.piggybank.storage.MultiStorage('$out/$producerName', '0', 'none', ',');
Другие вопросы по тегам