【发布时间】:2021-06-26 13:59:39
【问题描述】:
假设我有以下数据
id some_date days weeks
1111111111111111111111111 2021-03-01 2 1
1111111111111111111111111 2021-03-01 8 2
1111111111111111111111111 2021-03-01 9 2
1111111111111111111111111 2021-03-01 22 4
1111111111111111111111111 2021-03-01 24 4
我想计算每一行的生命周期总数。例如,上面数据的结果如下:
id some_date days weeks lifetime_weeks
1111111111111111111111111 2021-03-01 2 1 1
1111111111111111111111111 2021-03-01 8 2 2
1111111111111111111111111 2021-03-01 9 2 2
1111111111111111111111111 2021-03-01 22 4 3
1111111111111111111111111 2021-03-01 24 4 3
我尝试使用窗口函数来实现它,但由于不允许有不同的内部窗口函数,我最终遇到了错误
COUNT(distinct id) OVER(PARTITION BY id order by days rows unbounded preceding) as lifetime_weeks
如果没有窗口功能,我怎么能做同样的事情?任何帮助将不胜感激
【问题讨论】:
-
这能回答你的问题吗? pyspark: count distinct over a window
-
感谢您的帮助。我认为下面的答案比你给出的链接更适合我的问题
标签: sql pyspark apache-spark-sql