提取开始日期和结束日期之间的日期

时间:2021-02-08 13:18:47

标签: python python-3.x pandas dataframe apache-spark

我有以下两个日期: 开始 = 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 中实现这一点?

1 个答案:

答案 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')
相关问题