将 int YYYYMMDD 转换为日期 pyspark
Conver int YYYYMMDD to date pyspark
我正在尝试使用 Pyspark 将 INT 列转换为 Databricks 中的日期列。
该列如下所示:
Report_Date
20210102
20210102
20210106
20210103
20210104
我正在尝试使用 CAST 函数
df = df.withColumn("Report_Date", col("Report_Date").cast(DateType()))
但我收到以下错误:
Cannot resolve 'CAST(`Report_Date` AS DATE)' due to data type mismatch: cannot cast int to date;
你知道我怎样才能得到预期的输出吗?
先转换为字符串类型,然后使用 to_date
:
import pyspark.sql.functions as F
df2 = df.withColumn(
"Report_Date",
F.to_date(F.col("Report_Date").cast("string"), "yyyyMMdd")
)
我正在尝试使用 Pyspark 将 INT 列转换为 Databricks 中的日期列。 该列如下所示:
Report_Date
20210102
20210102
20210106
20210103
20210104
我正在尝试使用 CAST 函数
df = df.withColumn("Report_Date", col("Report_Date").cast(DateType()))
但我收到以下错误:
Cannot resolve 'CAST(`Report_Date` AS DATE)' due to data type mismatch: cannot cast int to date;
你知道我怎样才能得到预期的输出吗?
先转换为字符串类型,然后使用 to_date
:
import pyspark.sql.functions as F
df2 = df.withColumn(
"Report_Date",
F.to_date(F.col("Report_Date").cast("string"), "yyyyMMdd")
)