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

PySpark中如何将datetime转换为int?解决Column对象不可调用错误

PySpark中Datetime转数值类型的正确写法

你原来的代码是Pandas语法,PySpark的DataFrame列模型和Pandas完全不同,无法直接用apply+lambda的方式操作列,这就是触发TypeError: 'Column' object is not callable的核心原因。

改用PySpark内置函数即可实现需求,代码如下:

from pyspark.sql import functions as F

# 新增一列存储转换后的数值型日期
df = df.withColumn(
    "DATE_NUM",
    F.date_format(F.col("DATE"), "yyyyMMdd").cast("float")
)

# 如果要覆盖原DATE列,把第二个参数改成"DATE"即可
# df = df.withColumn(
#     "DATE",
#     F.date_format(F.col("DATE"), "yyyyMMdd").cast("float")
# )

代码说明

  • F.date_format(F.col("DATE"), "yyyyMMdd"):将datetime类型的DATE列格式化为yyyyMMdd格式的字符串,对应你原代码里的x.strftime("%Y%m%d")。
  • .cast("float"):将格式化后的字符串转换为浮点数类型,对应Pandas里的.astype('float64')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 00:54:30