我有一个如下格式的时间戳。如何从它得到日期在yyyy-MM-dd格式?
+-------------------------+
|15APR2021:03:53:54.458387|
|15APR2021:03:53:53.830339|
|15APR2021:03:53:54.297856|
+-------------------------+
我已经尝试使用下面的,但得到null。
scala> spark.sql("select to_date('15APR2021:03:53:54.297856')").show()
+------------------------------------+
|to_date('15APR2021:03:53:54.297856')|
+------------------------------------+
| null|
+------------------------------------+
这应该适合您。如果时间格式为24Hr,则将hh更改为hh。
spark.sql("select to_date('15APR2021:03:53:54.458387', 'ddMMMyyyy:hh:mm:ss')").show()
只需要使用合适的日期掩码,它似乎是:
ddMMMyyyy:HH:mm:ss.SSSSSS
下面是一个示例,假设时间戳位于名为ts
的列中df.withColumn("date", to_date($"ts", "ddMMMyyyy:HH:mm:ss.SSSSSS")).show(false)
+-------------------------+----------+
|ts |date |
+-------------------------+----------+
|15APR2021:03:53:54.458387|2021-04-15|
|15APR2021:03:53:53.830339|2021-04-15|
|15APR2021:03:53:54.297856|2021-04-15|
+-------------------------+----------+
或者使用示例中的语法:
spark.sql("select to_date('15APR2021:03:53:54.458387', 'ddMMMyyyy:hh:mm:ss.SSSSSS')").show()
+-----------------------------------------------------------------+
|to_date('15APR2021:03:53:54.458387', 'ddMMMyyyy:hh:mm:ss.SSSSSS')|
+-----------------------------------------------------------------+
| 2021-04-15|
+-----------------------------------------------------------------+