【问题标题】:Conver int YYYYMMDD to date pyspark将 int YYYYMMDD 转换为日期 pyspark
【发布时间】:2021-03-23 01:28:50
【问题描述】:

我正在尝试使用 Pyspark 将 INT 列转换为 Databricks 中的日期列。 该列如下所示:

Report_Date
20210102
20210102
20210106
20210103
20210104

我正在尝试使用 CAST 函数

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

但我收到以下错误:

由于数据类型不匹配,无法解析“CAST(`Report_Date` AS DATE)”:无法将 int 转换为日期;

你知道我怎样才能得到预期的输出吗?

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql date-formatting


    【解决方案1】:

    先转换成字符串类型,再使用to_date:

    import pyspark.sql.functions as F
    
    df2 = df.withColumn(
        "Report_Date", 
        F.to_date(F.col("Report_Date").cast("string"), "yyyyMMdd")
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      相关资源
      最近更新 更多