PIG Как вернуть количество строк от 1 псевдонима до другого псевдонима? - PullRequest
0 голосов
/ 01 июня 2018
REGISTER 'udf.py' using jython as myfunc;
loadhtml = load './assignment/crawler' using PigStorage('\u0001') as (id1:chararray,url:chararray,domain:chararray,content:chararray,source:chararray,date:chararray);
loadhtml_content = FOREACH loadhtml generate content;
flatten = FOREACH loadhtml_content generate flatten(TOKENIZE(line)) as word;
group = GROUP flatten by word;
count = FOREACH group1 generate $0, COUNT($1);
log = FOREACH count GENERATE myfunc.nLog($0,$1,**<I need to return the row count of loadhtml_content here>**);

Я пытаюсь вернуть количество строк loadhtml_content в другой псевдоним.Я не могу придумать другую идею, чтобы сделать это.

log = FOREACH count GENERATE myfunc.nLog ($ 0, $ 1, (мне нужно здесь вернуть количество строк loadhtml_content) );

1 Ответ

0 голосов
/ 21 июня 2018

Я полагаю, что это именно та функция, которую вы ищете: https://issues.apache.org/jira/browse/PIG-1434. По сути, она позволяет нам использовать односвязные отношения в качестве констант везде, где это необходимо.Что-то в следующих строках должно ответить на ваш вопрос:

loadhtml_content = FOREACH loadhtml generate content;
content_rows = FOREACH (GROUP loadhtml_content ALL) GENERATE 
                   COUNT(loadhtml_content);
log = FOREACH count GENERATE myfunc.nLog($0,$1,content_rows.$0);
...