2017-03-10 156 views
0

我正在使用SparkR讀取大型數據框。我想用其中包含字符格式的日期列的月總結:將字符串轉換爲日期SparkR

head(select(df, df$booking_date)) 
    booking_date 
1 29-JUL-16 
2 29-JUL-16 
3 06-JUL-16 
4 21-JUL-16 
5 28-JUL-16 
6 28-JUL-16 

但是,如果我嘗試打印月:

head(select(df, month(df$booking_date))) 
    month(booking_date) 
1     NA 
2     NA 
3     NA 
4     NA 
5     NA 
6     NA 

它不返回正確的值。看來它不理解的格式,但執行下面的命令使月()方法非常不滿:

head(select(df, month(as.Date(df$booking_date, format = "%d/%b/%y"))) 

因此,我怎麼能拿月份從booking_date列,以GROUP_BY()中的數據?

謝謝!

卡洛斯

回答

0

嘗試下面的代碼獲取月份名稱

a <- as.list(collect(select(df, df$booking_date))) 
b <- SparkR:::lapply(a$booking_date, function(x){months(as.Date(x, format = "%d-%b-%y"))}) 
print(b)