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

PySpark 将字符串日期列转为TimestampType的实现及报错修复

PySpark日期转换函数修复方案

报错根因

  • 缺失TimestampType类型的导入声明
  • 原有代码存在日期格式不匹配、列名硬编码、API调用逻辑错误三个问题

修复步骤

  1. 导入依赖
    在代码文件头部添加导入语句:
from pyspark.sql import functions as F
from pyspark.sql.types import TimestampType
  1. 修正函数逻辑
    原有函数硬编码了列名column_name,且日期格式与输入不匹配,同时错误地在列对象上调用withColumn方法,修改后的完整函数如下:
def datetype_change(self, key, col):
    self.log.info("datetype_change...".format(self.app_name.upper()))
    self.df[key] = self.df[key].withColumn(
        col, 
        # 匹配输入格式:日/月/年 12小时制 上下午标识
        F.unix_timestamp(F.col(col), 'dd/MM/yyyy hh:mm:ss a').cast(TimestampType())
    )

优化建议

PySpark 3.0及以上版本可以直接使用to_timestamp方法简化写法,替换转换逻辑即可:

F.to_timestamp(F.col(col), 'dd/MM/yyyy hh:mm:ss a')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:39:05