2017-06-21 85 views
0

我有一個數據幀星火如下圖所示:轉換日期爲月末的星火

#Create DataFrame  
df <- data.frame(name = c("Thomas", "William", "Bill", "John"), 
     dates = c('2017-01-05', '2017-02-23', '2017-03-16', '2017-04-08')) 
df <- createDataFrame(df) 

#Make sure df$dates column is in 'date' format  
df <- withColumn(df, 'dates', cast(df$dates, 'date')) 

name | dates 
-------------------- 
Thomas |2017-01-05 
William |2017-02-23 
Bill |2017-03-16 
John |2017-04-08 

我想改變dates至月日結束,所以他們看起來就像如下圖所示。我該怎麼做呢? SparkR或PySpark代碼都可以。

name | dates 
-------------------- 
Thomas |2017-01-31 
William |2017-02-28 
Bill |2017-03-31 
John |2017-04-30 

回答

3

您可以使用以下(PySpark):

from pyspark.sql.functions import last_day 

df.select('name', last_day(df.dates).alias('dates')).show() 

爲了澄清,last_day(date)返回該日期屬於該月的最後一天。

我敢肯定存在sparkR https://spark.apache.org/docs/1.6.2/api/R/last_day.html

0

爲完整的類似功能,這裏是SparkR代碼:

df <- withColumn(df, 'dates', last_day(df$dates)) 
相關問題