You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark使用sequence函数生成日期序列如何设置自定义日期间隔

PySpark sequence() 函数生成周间隔日期序列解决方案

当sequence()函数的起止参数为日期类型时,step参数需要传入时间间隔类型的取值,你要生成1周间隔的序列,直接使用周间隔表达式即可,有两种常用写法:

  1. 使用间隔字面量,需要配合expr()函数解析
  2. 使用make_interval()函数构造间隔,更适合参数化场景

修改后的可运行代码如下:

from pyspark.sql.functions import sequence, to_date, lit, explode, expr, make_interval
from datetime import date

# 写法1:使用间隔字面量
df =  (spark.createDataFrame([{'date':1}])
      .select(explode(sequence(
          to_date(lit('2021-01-01')),
          to_date(lit(date.today())),
          step = expr('interval 1 week')
      )).alias('calendar_date')))

# 写法2:使用make_interval构造,不需要expr包裹
df =  (spark.createDataFrame([{'date':1}])
      .select(explode(sequence(
          to_date(lit('2021-01-01')),
          to_date(lit(date.today())),
          step = make_interval(weeks=1)
      )).alias('calendar_date')))

df.show()

补充说明其他间隔的构造方式:

  • 天间隔:expr('interval N day') 或 make_interval(days=N)
  • 月间隔:expr('interval N month') 或 make_interval(months=N)
  • 年间隔:expr('interval N year') 或 make_interval(years=N)

内容的提问来源于stack exchange,提问作者dMb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:57:04