Как сделать функцию фильтра по датам в sparkR

'u' - это DataFrame, содержащий ID = 1, 2, 3 .. и время = "2010-01-01", "2012-04-06", .. ID и время имеют строковый тип. Я конвертирую тип времени» в «Дата»

u$time <- cast(u[[2]], "Date")

Я теперь хочу в первый раз в u.

first <- first(u$time)

Теперь я делаю новое время, добавляя 150 дней к первому времени.

cluster<- first+150

Теперь я хочу сделать подмножество. Я хочу иметь новый 'u', где время от первых 150 дней.

ucluster <- filter(u, u$time < cluster)

но это не может работать в sparkR. Я получаю это сообщение "returnstatus==0 is not TRUE".


person Ole Petersen    schedule 25.08.2015    source источник


Ответы (1)


Проблема с вашим подходом заключается в том, что ucluster представляет собой столбец одного элемента, а не даты. Если вы возьмете первую строку и сначала сохраните ее время, все будет работать нормально:

df <- data.frame(ID=c(1,2,3,4),time=c("2010-01-01", "2012-04-06", "2010-04-12", "2012-04-09"))
u  <- createDataFrame(sqlContext,df)

u$time  <- cast(u[[2]], "Date")
first   <- take(u,1)$time
cluster <- first + 150

ucluster <- filter(u, u$time < cluster)

collect(ucluster)
person Wannes Rosiers    schedule 27.08.2015