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

PySpark如何提取字符串格式日期列中的月份?

PySpark从字符串日期列提取两位月份值的方法

针对日期格式固定为yyyy-MM-dd的字符串列,有两种常用方法可以提取两位格式的月份(如"07"):

方法一:日期类型转换后提取(兼容格式校验)

先将字符串转为日期类型,再通过格式化函数提取两位月份,适合存在格式不规范数据的场景,格式错误的行会返回null便于后续处理:

from pyspark.sql import functions as F

# 替换df为你的DataFrame名称,date_str为目标日期列名
df = df.withColumn(
    "month",
    F.date_format(F.to_date(F.col("date_str"), "yyyy-MM-dd"), "MM")
)

方法二:直接字符串截取(高效)

如果日期列格式完全统一,直接截取字符串中对应位置的字符效率更高:

from pyspark.sql import functions as F

# 从第6位开始(Spark的substring起始位置从1计数),截取2个字符
df = df.withColumn(
    "month",
    F.substring(F.col("date_str"), 6, 2)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:24:13