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

PySpark如何将dd/mm/yyyy hh:mm格式字符串列转换为timestamp类型

PySpark 自定义格式时间字符串转Timestamp类型方案

根因说明

直接调用to_timestamp()不传格式参数时,PySpark会使用默认格式MM-dd-yyyy HH:mm:ss.SSSS匹配输入字符串,你输入的dd/mm/yyyy HH:mm格式和默认格式不匹配,因此转换结果全为null。

解决步骤

1. 完整转换字符串为Timestamp类型

给to_timestamp()传入第二个参数,指定你的输入时间格式即可完成转换:

from pyspark.sql.functions import to_timestamp

# 按dd/MM/yyyy HH:mm格式解析字符串列为Timestamp类型
q1 = q1.withColumn("full_timestamp", to_timestamp("ts", "dd/MM/yyyy HH:mm"))
# 验证转换结果
q1.show()

2. 提取仅保留时分的结果

根据你需要的输出类型选择对应方案:

  • 若需要字符串格式的时分:
from pyspark.sql.functions import date_format

q1 = q1.withColumn("hhmm_str", date_format("full_timestamp", "HH:mm"))
  • 若需要保留Timestamp类型(日期会默认补为1970-01-01,仅时分部分和原始数据一致):
from pyspark.sql.functions import to_timestamp, date_format

q1 = q1.withColumn("hhmm_timestamp", to_timestamp(date_format("full_timestamp", "HH:mm"), "HH:mm"))

注意事项

  • 格式符严格区分大小写:MM代表月份,mm代表分钟,混用会导致转换失败
  • 24小时制对应HH,12小时制对应hh,需和原始输入的时间格式对齐

内容的提问来源于stack exchange,提问作者Martin Walczyński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:54:01