我有一个DataFrame X.在sparkR中,我可以通过输入
找到第一行first(X)
现在我想找到最后一个。 '最后'是 聚合函数。
但是当我在sparkR中键入last(X)时,我收到此消息 (函数(classes,fdef,mtable)中的错误: 无法为签名'“DataFrame”找到函数'last'的继承方法 怎么可能,我怎么解决这个问题?
另外我可以用head(X)来获取第一行但是如何获取X中的最后一行?
答案 0 :(得分:3)
如果您的DataFrame是可排序的,或者您添加了row.numbers,请先按降序排序,然后先进行排序:
dfDesc <- arrange(df, desc(abs(df$rowNumber)))
first(dfDesc)
如果您不想排序,可以添加一个常量行并使用groupBy的last-function:
df <- data.frame(a=c(1,2),b=c(2,3))
DF <- createDataFrame(sqlContext,df)
DF <- withColumn(DF, "constant", DF$a * 0)
lastLine <- agg(groupBy(DF, DF$constant), a = last(DF[["a"]]), b = last(DF[["b"]]))
collect(lastLine)