编辑:显然 Spark 2.4.3 不支持 INTERVAL。我暂时无法升级到 Spark 3.0.0(管理员策略)。我想知道目前是否有针对 INTERVAL 的解决方法或交替方法?谢谢
在 Databricks 中对 Spark sql 运行查询,查询在间隔行上显示错误。我试图在同一个用户 ID 上将表左连接起来,并且用户之间存在一个月的差异。
Error in SQL statement: ParseException:
Literals of type 'INTERVAL' are currently not supported.
Spark SQL 不支持区间函数吗?
这是我的尝试:
%sql
;WITH act_months AS (
SELECT DISTINCT
DATE_TRUNC('month', data_date) ::DATE AS act_month,
user_id
FROM user_sessions)
SELECT
prev.act_month,
prev.user_id,
curr.user_id IS NULL AS churned_next_month
FROM act_months AS prev
LEFT JOIN act_months AS curr
ON prev.user_id = curr.user_id
AND prev.act_month = (curr.act_month - INTERVAL '1 MONTH')
ORDER BY prev.act_month ASC, prev.user_id ASC;
这是我的数据结构
+----------+----------+
| data_date| user_id|
+----------+----------+
|2020-01-01|22600560aa|
|2020-01-01|17148900ab|
|2020-01-01|21900230aa|
|2020-01-01|35900050ac|
|2020-01-01|22300280ad|
|2020-01-02|19702160ac|
|2020-02-02|17900020aa|
|2020-02-02|16900120aa|
|2020-02-02|11160900aa|
|2020-03-02|16900290aa|
+----------+----------+