У меня есть DataFrame, где изначально у меня была строка с датами. Я преобразовал его в правильную метку времени с функцией to_timestamp
. schema
DataFrame показывает, что это timestamp
.
Q: Как отформатировать столбец date
для отображения дат в формате MMM-YYYY
, например JAN-2015
вместо 2015-01-01 00:00:00
?
from pyspark.sql.functions import to_timestamp, date_format
valuesCol = [('01JAN2015',),('01FEB2018',),('01APR2013',),('01DEC2016',)]
df = sqlContext.createDataFrame(valuesCol,['date'])
df = df.withColumn('date',to_timestamp('date','ddMMMyyyy'))
df.show()
df.printSchema()
+-------------------+
| date|
+-------------------+
|2015-01-01 00:00:00|
|2018-02-01 00:00:00|
|2013-04-01 00:00:00|
|2016-12-01 00:00:00|
+-------------------+
root
|-- date: timestamp (nullable = true)
Я не могу использовать функцию date_format()
, потому что результирующий тип данных string
.
df=df.withColumn("date",date_format('date',"MMM-yyyy"))
df.show()
df.printSchema()
+--------+
| date|
+--------+
|Jan-2015|
|Feb-2018|
|Apr-2013|
|Dec-2016|
+--------+
root
|-- date: string (nullable = true)
Итак, в двух словах, как я могу изменить формат отображения date
при сохранении его типа данных как timestamp
?