首页 > 解决方案 > 我的日期格式为 m/dd/yyyy h:mm 和 mm/dd/yyyy h:mm,我想在 sparksql 中以 yyyy-mm-dd hh:mm:ss 输出。但我越来越空

问题描述

我有像 4/5/2017 0:00 和 12/21/2016 0:00 这样的值,我希望它采用 yyyy-mm-dd hh:mm:ss 格式。
我正在使用它来完成任务。

 stf1.withColumn('approval',unix_timestamp("approval","MM/dd/yyyy h:mm ")

其中 sf1 是数据框,approval 是我要转换为的列名。但我得到的答案为空。而不是预期的。

标签: pythonapache-sparkhivepysparkhiveql

解决方案


您可以为此使用 sql 函数。

>>> import pyspark.sql.functions as F
>>> df.show()
+-------------+
|            a|
+-------------+
|4/5/2017 0:00|
+-------------+

>>> df.withColumn('b',F.date_format(F.to_date('a','MM/dd/yyyy HH:mm'),'yyyy-MM-dd HH:mm:ss')).show()
+-------------+-------------------+
|            a|                  b|
+-------------+-------------------+
|4/5/2017 0:00|2017-04-05 00:00:00|
+-------------+-------------------+

推荐阅读