【发布时间】:2020-05-24 05:00:25
【问题描述】:
我在 Hive 表名中有以下数据集 - PUBLISH
注意PUBLISH中可以有重复记录
DATE |HOUR|SOURCE|COL_TIMESTAMP |ID
20200101|14 |A |2020-01-01 14:18:53.016 GMT|ID_111
20200101|14 |A |2020-01-01 14:18:53.012 GMT|ID_222
20200101|14 |A |2020-01-01 14:18:53.016 GMT|ID_111
20200101|14 |A |2020-01-01 14:18:53.019 GMT|ID_333
20200101|15 |C |2020-01-01 15:18:53.016 GMT|ID_444
20200102|00 |A |2020-01-01 15:18:53.016 GMT|ID_444
我想根据特定日期、时间和来源生成以下输出
例如。对于 (DATE=20200101 & HOUR=14 & SOURCE=A),输出应为:
DATE |HOUR|SOURCE|MIN_TIMESTAMP |START_ID|MAX_TIMESTAMP |END_ID|RECORD_CNT
20200101|14 |A |2020-01-01 14:18:53.012 GMT|ID_222 |2020-01-01 14:18:53.019 GMT|ID_333|3
注意时间戳末尾有“GMT”。 此外,我正在尝试使用 spark java 代码运行查询。 当数据量很大时,请建议一个性能良好的 Hive 查询。
【问题讨论】:
-
这些答案之一是否解决了您的问题?如果没有,您能否提供更多信息来帮助回答?否则,请考虑将最能解决您的问题的答案标记为已接受(上/下投票箭头下的复选标记)。见What should I do when someone answers my question? 和How does accepting an answer work?
-
听起来像是一个 groupwise-max 问题。 mysql.rjweb.org/doc.php/groupwise_max
标签: mysql hadoop hive hiveql groupwise-maximum