如何从DataFrame获取最后一行?

men*_*gwu 6 scala apache-spark apache-spark-sql spark-dataframe

我有一个DataFrame,该DataFrame有两列“值”和“时间戳”,“ timestmp”是有序的,我想获取DataFrame的最后一行,我该怎么办?

这是我的输入:

+-----+---------+
|value|timestamp|
+-----+---------+
|    1|        1|
|    4|        2|
|    3|        3|
|    2|        4|
|    5|        5|
|    7|        6|
|    3|        7|
|    5|        8|
|    4|        9|
|   18|       10|
+-----+---------+
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    val arr = Array((1,1),(4,2),(3,3),(2,4),(5,5),(7,6),(3,7),(5,8),(4,9),(18,10))
    var df=m_sparkCtx.parallelize(arr).toDF("value","timestamp")
Run Code Online (Sandbox Code Playgroud)

这是我的预期结果:

+-----+---------+
|value|timestamp|
+-----+---------+
|   18|       10|
+-----+---------+
Run Code Online (Sandbox Code Playgroud)

Mim*_*eng 7

试试这个,对我有用。

df.orderBy($"value".desc).show(1)
Run Code Online (Sandbox Code Playgroud)


hi-*_*zir 4

我只想reduce

df.reduce { (x, y) => 
  if (x.getAs[Int]("timestamp") > y.getAs[Int]("timestamp")) x else y 
}
Run Code Online (Sandbox Code Playgroud)