是否有一种方法可以每年计算一次事件的各个实例?

时间:2019-07-09 11:07:24

标签: apache-pig

我正在研究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)

1 个答案:

答案 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;