Pyspark To_Date函数始终返回null

Pyspark To_Date函数始终返回null,pyspark,pyspark-sql,Pyspark,Pyspark Sql,我有一个字符串格式的列,通过以下方式获取: session.sql("select milestoneactualdate from dba") 此列包含类似“20190101”的数据。我想通过以下方式将此字符串转换为日期: session.sql("select *, to_date(milestoneactualdate, '%YYYY%MM%DD') as datetest from dba").show() 我还尝试: changedTypedf = df.withColumn("m

我有一个字符串格式的列,通过以下方式获取:

session.sql("select milestoneactualdate from dba")
此列包含类似“20190101”的数据。我想通过以下方式将此字符串转换为日期:

session.sql("select *, to_date(milestoneactualdate, '%YYYY%MM%DD') as datetest from dba").show()
我还尝试:

changedTypedf = df.withColumn("milestoneactualdate", to_date(df["milestoneactualdate"], '%YYYY%MM%DD').cast('Date'))

但它总是返回“null”。为什么“我的强制转换”功能不起作用?

您的日期格式必须是
yyyyMMdd
,请参阅

df=spark.createDataFrame([['20190101']],['milestoneactualdate'])
df.show()
+-------------------+
|烯雌酮硬脂酸酯|
+-------------------+
|           20190101|
+-------------------+
df.selectExpr('to_date(milestoneactualdate,“yyyyymmdd”)作为日期')。show()
+----------+
|日期|
+----------+
|2019-01-01|
+----------+