首页 文章

如何在sparkR中的日期上生成过滤器功能

提问于
浏览
0

'u'是一个DataFrame,包含ID = 1,2,3 ..和time =“2010-01-01”,“2012-04-06”,.. ID和时间都有类型字符串 . 我将时间类型'转换为'日期'

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

我现在想第一次来到你身边 .

first <- first(u$time)

我现在通过第一次增加150天来重新开始

cluster<- first+150

我现在想做一个子集 . 我希望有一个新的'你'来自前150天的时间 .

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

但这不能在sparkR中运行 . 我收到此消息“returnstatus == 0不为TRUE” .

1 回答

  • 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)
    

相关问题