【发布时间】:2020-12-08 16:34:51
【问题描述】:
我有一个像下面这样的表,我想在 spark sql 中获取最小距离的行
我试过了
result.select($"sourceBorder", $"targetBorder", $"min(distance))").show()
这会给出错误,而 result.agg(min("distance")) 只给出距离列而不给出其他列。
+------------+------------+--------+
|sourceBorder|targetBorder|distance|
+------------+------------+--------+
| 3| 12| 20|
| 4| 12| 28|
| 2| 12| 16|
| 3| 6| 15|
| 4| 6| 19|
| 2| 6| 7|
| 3| 7| 15|
| 4| 7| 23|
| 2| 7| 11|
+------------+------------+--------+
所以最后想要这一行
| 2| 6| 7|
【问题讨论】:
-
我排序并得到第一行但我不知道这是最好的方法
result.sort($"distance".asc).head()
标签: scala apache-spark apache-spark-sql