从字符串火花中投射日期
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|
#+----------+
我的数据框中有一个字符串数据类型的日期,格式为 - 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|
#+----------+