将字符串转换为Date SparkR

时间:2017-03-10 17:11:19

标签: datetime format 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

它不会返回正确的值。它似乎不理解格式,但执行以下命令会使month()方法非常不满:

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

因此,我怎样才能从booking_date列获取月份以便group_by()数据?

谢谢!

卡洛斯

1 个答案:

答案 0 :(得分: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)