我有一个数据帧,它的日期格式如下:
+----------------------+
|date |
+----------------------+
|May 6, 2016 5:59:34 AM|
+----------------------+
我打算以YYYY-MM-DD
格式从中提取日期;所以结果应该是上述日期 - 2016-05-06。
但是当我提取时,使用以下:
df.withColumn('part_date', from_unixtime(unix_timestamp(df.date, "MMM dd, YYYY hh:mm:ss aa"), "yyyy-MM-dd"))
我得到以下日期
2015-12-27
任何人都可以就此提供建议吗?我不打算将我的 df 转换为 rdd 以使用 python 中的日期时间函数,并希望在它自己的数据帧中使用它。
您的模式存在一些错误。这里有一个建议:
from_pattern = 'MMM d, yyyy h:mm:ss aa'
to_pattern = 'yyyy-MM-dd'
df.withColumn('part_date', from_unixtime(unix_timestamp(df['date'], from_pattern), to_pattern)).show()
+----------------------+----------+
|date |part_date |
+----------------------+----------+
|May 6, 2016 5:59:34 AM|2016-05-06|
+----------------------+----------+