Сумма с GROUP BY и MAX - PullRequest
       24

Сумма с GROUP BY и MAX

0 голосов
/ 17 апреля 2019

Загруженные данные, которые содержат страну, год, пол и уровень грамотности. Мне нужно найти общий уровень грамотности за последний год в каждой стране

Мне удалось извлечь максимальную дату с названием страны.Я не могу суммировать уровень грамотности обоих полов в каждой стране.

|country|year|gender|literacy|
|-------|----|------|--------|
|aus    |2009|m     |1234    |
|aus    |2009|f     |4561    |
|aus    |2010|m     |7891    |
|aus    |2010|f     |1011    | 

Мне нужно

|aus    |2010|  (7891+1011)  | 

для каждой страны

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете использовать вложенный foreach и получать результаты за последний год для каждой страны.

A = load 'input' as (country:chararray, year:int, gender:chararray, literacy:int);
B = GROUP A by (country, year);
C = FOREACH B GENERATE flatten(group), SUM(A.literacy) as total;
D = GROUP C by country;
E = FOREACH D {
    E1 = ORDER C by year DESC;
    E2 = LIMIT E1 1;
    GENERATE E2;
}
STORE E into '/tmp/result.txt'; 
...