【发布时间】:2018-11-16 16:47:42
【问题描述】:
我有一列包含字符串格式的数据20180501,我想将其转换为日期格式,尝试使用
to_date(cast(unix_timestamp('20180501', 'YYYYMMDD') as timestamp))'
但它仍然没有工作。我正在使用带有数据框的 Spark SQL
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql
我有一列包含字符串格式的数据20180501,我想将其转换为日期格式,尝试使用
to_date(cast(unix_timestamp('20180501', 'YYYYMMDD') as timestamp))'
但它仍然没有工作。我正在使用带有数据框的 Spark SQL
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-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|
+-------------------------------+
【讨论】: