Spark sql - Pyspark 字符串到日期的转换

Spark sql - Pyspark string to date conversion

我有一列数据 20180501 为字符串格式,我想将其转换为日期格式,尝试使用

to_date(cast(unix_timestamp('20180501', 'YYYYMMDD') as timestamp))'

但还是不行。我正在使用 Spark SQL 和数据帧

格式应为yyyyMMdd:

spark.sql("SELECT to_date(cast(unix_timestamp('20180501', 'yyyyMMdd') as timestamp))").show()
# +------------------------------------------------------------------+
# |to_date(CAST(unix_timestamp('20180501', 'yyyyMMdd') AS TIMESTAMP))|
# +------------------------------------------------------------------+
# |                                                        2018-05-01|
# +------------------------------------------------------------------+

正如其他答案中指出的,您使用的格式不正确。不过也可以直接用to_date

spark.sql("SELECT to_date('20180501', 'yyyyMMdd')").show()
+-------------------------------+
|to_date('20180501', 'yyyyMMdd')|
+-------------------------------+
|                     2018-05-01|
+-------------------------------+