conver int yyyyymmdd至今的pyspark

cygmwpex  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(295)

我正在尝试用pyspark将databricks中的int列转换为date列。该列如下所示:

Report_Date
20210102
20210102
20210106
20210103
20210104

我在试着用cast函数

df = df.withColumn("Report_Date", col("Report_Date").cast(DateType()))

但我得到以下错误:
由于数据类型不匹配,无法解析“cast(report\u dateas date)”:无法将int转换为date;
你知道我怎样才能得到预期的产出吗?

von4xj4u

von4xj4u1#

先转换为字符串类型,然后使用 to_date :

import pyspark.sql.functions as F

df2 = df.withColumn(
    "Report_Date", 
    F.to_date(F.col("Report_Date").cast("string"), "yyyyMMdd")
)

相关问题