2016-05-19 2 views
4

У меня есть dataframe, который имеет дату в следующем формате:дату Выписка из столбца строки, содержащей метку времени в Pyspark

+----------------------+ 
|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, чтобы использовать функцию datetime из python и хочу использовать это в своем кадре данных.

ответ

12

В вашем шаблоне есть некоторые ошибки. Вот предложение:

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| 
+----------------------+----------+ 
Смежные вопросы