pyspark-根据日期列创建范围调整结束日期的日期吗?

时间:2020-11-12 18:54:18

标签: sql date pyspark

test_df = spark.createDataFrame([
(1, '2019-01-01'),
(1, '2019-01-02'),
(1, '2019-01-03'),
(1, '2019-01-10'),
(1, '2019-01-16'),
(1, '2019-01-29')
], ['id','dtstart']
)

result_df = spark.createDataFrame([
(1, '2019-01-01', '2019-01-08', 3),
(1, '2019-01-10', '2019-01-17', 2),
(1, '2019-01-29', '2019-02-05', 1)
], ['id','dtstart', 'wdend', 'count']
])

鉴于输入test_df和窗口范围7天,我想计算给定窗口中发生的行数。

需要注意的是,如果日期在现有窗口之外,则新窗口的结束日期必须基于行的开始日期。最终要求是窗口不得重叠。

我目前采用的方法包括使用date_diff来计算间隔数,但这由于窗口重叠而失败。

此外,我尝试使用先于当前的有界前缀,但这失败了,因为它不会自动调整为最新的可用开始日期。在给定多个开始日期的情况下,获得所有适当日期的迭代次数将未知。

对此卡住了,将不胜感激。

0 个答案:

没有答案
相关问题