【发布时间】:2020-01-23 04:58:09
【问题描述】:
在下图中,第一个是有问题的表格(提供的脚本),第二个是预期的输出。 在 C 列中,我们有不同的项目,如 T1、T2、T3,记录将按组提供,T1 记录,然后是 T2 或 T3。它们之间不应该有任何差距,T1会开始和结束,然后只能出现T2项目。但如果 T1 在其他项目之后重新出现,我想以不同的方式考虑它。在 hive/spark 中实现结果的选项有哪些?
我尝试在一列中使用排名,然后在其他列中使用下一个值并尝试运行一些比较,但这没有帮助。
请指教
CREATE TABLE TEST_A (A STRING, B STRING, C STRING);
INSERT INTO TEST_A (A, B, C) VALUES ('a','1-Jan','T1'), ('a','2-Jan','T1'),('a','3-Jan','T2'),('a','4-Jan','T3') ,('a','5-Jan','T1'),('a','6-Jan','T1')
【问题讨论】:
-
所以在预期的结果中你总是期望只有 3 行?您能否提供更多信息,列 B-First、B-Last、Repeat-First、Repeat-Last 应该是什么?
标签: sql hadoop hive hiveql pyspark-sql