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

PySpark中如何将字符串转为日期?转换后出现Null值求解

解决PySpark字符串转日期返回Null的问题

问题出在日期格式字符串不匹配:你的输入字符串是2019.06.24 12:01:19,格式为年.月.日 时:分:秒,但你用了MM/dd/yyyy(月/日/年)来解析,PySpark无法识别对应格式,因此转换失败返回Null。

修正后的代码

from pyspark.sql import SparkSession
from pyspark.sql.functions import to_date

spark = SparkSession.builder.appName('SparkByExamples.com').getOrCreate()
data_source_df = spark.createDataFrame(
    data = [ ("1","2019.06.24 12:01:19")],
    schema=["id","input"]
)

# 使用与输入字符串匹配的格式解析
data_source_df = data_source_df.withColumn("input", to_date("input", "yyyy.MM.dd HH:mm:ss"))
data_source_df.show()

执行结果

+---+----------+
| id|     input|
+---+----------+
|  1|2019-06-24|
+---+----------+

关键说明

  • 若只需要提取日期部分(无需时分秒),使用yyyy.MM.dd作为格式字符串也能正确解析。
  • 常见日期格式符对应关系:
    • yyyy:4位年份
    • MM:2位月份
    • dd:2位日期
    • HH:24小时制小时
    • mm:分钟
    • ss:秒
    • 字符串中的分隔符(.、/、-等)必须与格式字符串完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:00:59