Pig - 对内部联接结果执行聚合

时间:2014-11-28 07:39:31

标签: apache-pig

我在两个表上执行了内连接。但是,我无法对其中一个cloumns进行求和:

执行了查询:

sample1 = load '/user/tweets/samples.csv' using PigStorage AS (line:chararray);
words = FOREACH sample1 GENERATE FLATTEN(TOKENIZE(REPLACE(LOWER(TRIM(line)),'[\\p{Punct},\\p{Cntrl}]',''))) AS word
newinnerjoin = join words by word, wordlexion by lexword;

以下是表格的输出:newinnerjoin

(important,important,2)
(irritated,irritated,-3)
(promoting,promoting,1)
(promoting,promoting,1)
(appreciate,appreciate,2)
(confidence,confidence,2)

我想在内部联接结果的第3列上执行聚合。 所以,我希望总和计算为2 + -3 + 1 + 1 + 2 + 2 = 5 有没有办法我可以做而不将内连接结果存储在csv文件中? 请指教。

由于

1 个答案:

答案 0 :(得分:1)

您可以添加以下3行代码并让我知道结果吗?。

A = GROUP newinnerjoin  ALL;
B = FOREACH A GENERATE SUM(newinnerjoin.$2);
DUMP B;