apache-pig - 有没有办法计算每年事件的个别实例?
问题描述
我正在研究 Apache Pig,以了解如何使用大型数据库。具体问题是,当记录区域的温度记录在80度以上时,我需要计算数据集中列出的所有年份每年的天数。
数据按以下方式设置。日期最高温度
1919-06-03, 36
1919-11-26, 91
1927-09-23, 61
这种情况每天都在重复大约 200 年。
目前,我知道为了使这更易于管理,我将使用拆分功能,根据温度高于 80 度拆分数据集。
SPLIT data INTO max_above_95 if max_t > 80;
我还认为,如果您可以将年份排除在日期之外,则可以在拆分后进行分组以获得预期的结果并计数。但是,我找不到使用年份的日期块的方法。
我需要这个来最终输出每年的输出,以及那一年的出现次数,如下所示:
(1993, 21)
(1994, 7)
(1995, 13)
解决方案
使用 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;
推荐阅读
- reactjs - 如何将地图函数用于钩子 useState 属性
- python - Python configparser:获取未使用条目的列表
- html - 如何摆脱表格中的“红色区域”?
- mysql - 是否有 mysql 函数可以从 SCHEMA(date, time) 形式的可用数据中获取过去三天时间的平均值
- javascript - i 在 for 循环中的行为不是我所期望的
- python - 如何从字典中的列表(每个索引独立)写入条目列表?
- c - C中的反转字符串
- android - RecyclerView 在另一个具有相同布局管理器的 RecyclerView 内部不滚动
- hadoop - 当我们从 HDFS 将数据加载到 Hive 表中时,它会从源目录(HDFS)中删除文件
- sql - 如何在 SAP HANA DB 中列出当前用户的所有可选表