2017-03-10 130 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)