我有一个DataFrame,最初我有一个日期字符串。我使用to_timestamp
函数将其转换为正确的时间戳。 DataFrame的schema
表明它是timestamp
。
问::如何设置显示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
的情况下更改其显示格式?