Как заставить SUM () работать после группировки и иметь мешки? - PullRequest
0 голосов
/ 01 марта 2020

Может кто-нибудь объяснить, почему это работает:

data = FOREACH problem_three GENERATE $0 AS playerID, $1 AS yearID, $8 AS doubles, $9 AS triples, $10 AS HR;
filtered_years = FILTER data BY (yearID=='1980' OR yearID=='1981'OR yearID=='1982'OR yearID=='1983'OR yearID=='1984'OR yearID=='1985'OR 
yearID=='1986'OR yearID=='1987'OR yearID=='1988'OR yearID=='1989');
extra_bases_total = FOREACH filtered_years GENERATE playerID, doubles+triples+HR AS yearly_total;
players_grouped = GROUP extra_bases_total BY playerID;
sums = FOREACH players_grouped GENERATE group, SUM(extra_bases_total.yearly_total) AS total;
grouped_all = GROUP sums ALL;

, но это не так:

Batting = LOAD 'hdfs:/user/maria_dev/pigtest/Batting.csv' USING PigStorage(',');
batting_details = FOREACH Batting GENERATE $0 AS playerID, $11 AS RBI;
batting_detail = FOREACH batting_details GENERATE playerID, RBI;
batting_details_groupeddata = GROUP batting_detail BY playerID;
totals = FOREACH batting_details_groupeddata GENERATE group, SUM(batting_detail.RBI) AS total;
DUMP totals;

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

...