【发布时间】:2019-06-13 13:34:46
【问题描述】:
我有一些按以下方式格式化的数据。
ID 和 DATE 列是表的主键。活动列表示用户是否参与了活动。
我的目标是在当前行的日期之后找到每个用户的最后一个活动日期。
所以,我想自己加入表。问题 - 我正在使用 SPARK SQL,但不能在 select 子句中使用子查询,其中包含 < 或 > 符号。
我的想法是:
SELECT MAX(ACTIVE) from table t1, t2 where t1.ID = t2.ID and t1.Date>t2.Date
但是,这是不可能的。
否则我该怎么做?
+----+----------+--------+-------------+
| ID | DATE | ACTIVE | LAST_ACTIVE |
+----+----------+--------+-------------+
| | | | |
| 1 | 06/12/19 | 0 | |
+----+----------+--------+-------------+
| 1 | 06/13/19 | 1 | |
+----+----------+--------+-------------+
| 1 | 06/14/19 | 0 | |
+----+----------+--------+-------------+
| 2 | 06/12/19 | 0 | |
+----+----------+--------+-------------+
| 2 | 06/13/19 | 1 | |
+----+----------+--------+-------------+
| 3 | 06/12/19 | 1 | |
+----+----------+--------+-------------+
| 3 | 06/13/19 | 0 | |
+----+----------+--------+-------------+
【问题讨论】:
-
请解释您要做什么。你想要什么结果?
标签: sql pyspark apache-spark-sql