Две функции магазина в одном скрипте свиньи

У меня есть сценарий свиньи для загрузки, обработки и хранения данных.

Если в одном скрипте с одним свитком есть две функции магазина, как это работает?

a = load 'somefile' using PigStorage(',');
b ...
c ...
d ...
e = store d into 'output1';
f = store c into 'output2';

Это выполняется два раза для каждого магазина. То есть для store 'e' он обрабатывается от 'a' до 'e', а для store 'f' он непосредственно хранит 'c', поскольку он уже обработан или он снова начнется с 'a'?

1 ответ

Вообще говоря, базовая структура map/reduce имеет формат с несколькими выводами, поэтому Pig может использовать это и запускать два сценария хранилища в одном задании, например, путем раздельного сокращения, и каждый из них будет записывать в другой файл

Однако фактический план карты/сокращения зависит от того, что вы делаете, чтобы добраться до c и d - иногда для обработки потребуется больше одного задания - чтобы понять, как работает ваш скрипт, вы можете использовать команду Pig explain. Если вам нужна графическая визуализация, вы можете использовать помаду Netflix

licensed under cc by-sa 3.0 with attribution.