我正在研究Apache Pig,以了解使用大型数据库的知识。具体问题是,当记录区域的温度被记录为高于80度时,我需要计算数据集中列出的所有年份每年的天数。
以以下方式设置数据。 日期最高温度
1919-06-03,36
1919-11-26,91
1927-09-23,61
每天重复大约200年。
当前,我知道要使其更易于管理,我将使用split函数,根据高于80度的温度来拆分数据集。
SPLIT data INTO max_above_95 if max_t > 80;
我还认为,如果可以使日期过期,则可以拆分后分组以得到预期的结果并计数。 但是,我找不到使用日期中年份部分的方法。
我需要在最终输出中给出每年,以及该年出现的次数,例如:
(1993,21)
(1994,7)
(1995,13)
答案 0 :(得分:0)
使用FILTER,然后按年份提取年份,对出现的次数进行计数。
B = FILTER A BY (A.max_t > 80);
C = FOREACH B GENERATE B.Date,GetYear(B.Date) as Year,max_t;
D = GROUP C BY Year;
E = FOREACH D GENERATE FLATTEN(group) as Year,COUNT(C.max_t);
DUMP E;