我有一个dataframe,其中包含user_id、date和value。我使用以下代码块获取每个用户三天的平均值:
spark.sql(
"""SELECT *, mean(value) OVER (
PARTITION BY user_id
ORDER BY CAST(date AS timestamp)
RANGE BETWEEN INTERVAL 2 DAYS PRECEDING AND CURRENT ROW
) as mean FROM table1""")
我也想得到一个前瞻性的三天平均。基本上与上面相同的代码与以下调整
RANGE BETWEEN INTERVAL CURRENT ROW AND 2 DAYS AFTER
我试着用了一下这个方法,并在谷歌上搜索了一下,但似乎找不到正确的语法。我也试过使用一个负的前几天,它运行没有错误,但返回的平均值都是空值。
你知道正确的语法是什么吗?
编辑:
解决方案BETWEEN CURRENT ROW AND INTERVAL 2 DAYS FOLLOWING
1条答案
按热度按时间t9eec4r01#
当前行和间隔2天之间
感谢Ponder Stibons,他在评论中回答了这个问题