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

时间:2018-06-06 21:29:38

标签: apache-spark pyspark apache-spark-sql pyspark-sql

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

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

但它仍然没有奏效。我正在使用带有数据帧的Spark SQL

2 个答案:

答案 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|
+-------------------------------+