与GROUP BY和MAX相加

时间:2019-04-17 13:25:43

标签: apache-pig aws-api-gateway

包含国家,年,性别和识字率的加载数据 我需要找到每个国家最近一年的总识字率

我设法用国家名称提取了最大日期。我无法总结每个国家的男女识字率。

|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 :(得分:0)

您可以使用nested-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';