我有一个字符串格式的数据20180501
的列,我想将其转换为日期格式,尝试使用
to_date(cast(unix_timestamp('20180501', 'YYYYMMDD') as timestamp))'
但它仍然没有奏效。我正在使用带有数据帧的Spark SQL
答案 0 :(得分:4)
格式应为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|
# +------------------------------------------------------------------+
答案 1 :(得分:1)
正如在另一个答案中所指出的,您使用的格式不正确。但您也可以直接使用to_date
:
spark.sql("SELECT to_date('20180501', 'yyyyMMdd')").show()
+-------------------------------+
|to_date('20180501', 'yyyyMMdd')|
+-------------------------------+
| 2018-05-01|
+-------------------------------+