2016-11-29 4 views
0

У меня есть пояснения на заказ у свиньи. может кто-нибудь прояснить это.Свинья, вложенные для каждого осветления

Пример кода

x = LOAD '/home/hadoop/Desktop/HadoopSetup/input/Data/StockData' using PigStorage(',') As (exchange:chararray, symbol:chararray, date:chararray, open:double, high:double, low:double, close:double, volume:long, adj_close:double); 

y = GROUP x by symbol; 

z = foreach y { 
      t = order x by open DESC; 
      k = limit t 1; 
      generate group, k.volume; 
       }; 

вопрос

у соотношение содержит группу, х в его схеме. x не является отношением, так как можно выбрать x в инструкции по порядку, поскольку это не отношение. Может ли кто-нибудь подробно остановиться на следующем утверждении?

t = order x by open DESC 

ответ

0

Apache свинья использует концепцию поля проекции при использовании вложенных заявлений Foreach, в вашем коде используется вложенной Проекция

Так что, когда вы используете Foreach это означает для каждая запись, присутствующая в Y (каждая запись, присутствующая в Y, сгруппирована X), теперь apache pig не нужно сгруппировать X, чтобы быть размещенным в отдельном отношении, он может ссылаться на него из уже проецируемого поля, то есть Y.

Примечание точка здесь, что операция FOREACH будет выполнять для каждой записи/линии в настоящее время У.

  • Project-диапазон может быть использован во всех случаях, когда звезда выражение (* ) допускается.
  • Проект-диапазон может быть использован в следующих утверждениях: FOREACH, JOIN, GROUP, COGROUP и ORDER BY (также при ORDER BY используется внутри
    вложенного блока в FOREACH).

по этой ссылке: https://pig.apache.org/docs/r0.14.0/basic.html

Смежные вопросы