'last' SparkR 中的函数

'last' function in SparkR

我有一个 DataFrame X。在 sparkR 中,我可以通过键入找到第一行

first(X)

现在我想找到最后一个。 'last' 是 聚合函数。

但是当我在 sparkR 中键入 last(X) 时,我收到了这条消息 (函数 (类, fdef, mtable) 中的错误: 无法找到签名“"DataFrame"”的函数“last”的继承方法 这怎么可能,我该如何解决?

此外,我可以执行 head(X) 来获取第一行,但如何获取 X 中的最后一行?

如果您的 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)