我有以下两个日期:
开始 = 2018-02-15
结束 = 2021-02-05
如果我将这两个日期传递给一个方法,我需要得到如下输出。
Start End
2018-02-15 2018-03-15
2018-03-15 2018-04-15
2018-04-15 2018-05-15
2018-05-15 2018-06-15
...
2021-01-15 2021-02-05
有没有办法可以在 python、Pandas 或 spark 中实现这一点?
答案 0 :(得分:2)
您可以分解两个日期序列:
start = '2018-02-15'
end = '2021-02-05'
df = spark.sql(f"""
select
explode(
arrays_zip(
sequence(date('{start}'), date('{end}') - interval 1 month, interval 1 month),
sequence(date('{start}') + interval 1 month, date('{end}'), interval 1 month)
)
)
""").selectExpr('col.*').toDF('start', 'end')