从字符串火花中投射日期

Casting date from string spark

我的数据框中有一个字符串数据类型的日期,格式为 - dd/MM/yyyy,如下所示:

当我尝试将字符串转换为日期格式时,所有函数都返回空值。

希望将数据类型转换为 DateType

您的日期字符串似乎包含引号,您需要删除它们,例如使用 regexp_replace,然后再调用 to_date:

import pyspark.sql.functions as F

df = spark.createDataFrame([("'31-12-2021'",), ("'30-11-2021'",), ("'01-01-2022'",)], ["Birth_Date"])

df = df.withColumn(
    "Birth_Date",
    F.to_date(F.regexp_replace("Birth_Date", "'", ""), "dd-MM-yyyy")
)

df.show()
#+----------+
#|Birth_Date|
#+----------+
#|2021-12-31|
#|2021-11-30|
#|2022-01-01|
#+----------+