У меня есть следующий DataFrame df
в Spark:
+------------+---------+-----------+
|OrderID | Type| Qty|
+------------+---------+-----------+
| 571936| 62800| 1|
| 571936| 62800| 1|
| 571936| 62802| 3|
| 661455| 72800| 1|
| 661455| 72801| 1|
Мне нужно выбрать строку, имеющую наибольшее значение Qty
для каждого уникального OrderID
или последние строки для OrderID
, если все Qty
совпадают (например, как для 661455
). Ожидаемый результат:
+------------+---------+-----------+
|OrderID | Type| Qty|
+------------+---------+-----------+
| 571936| 62802| 3|
| 661455| 72801| 1|
Любые иды, как его получить?
Вот что я попробовал:
val partitionWindow = Window.partitionBy(col("OrderID")).orderBy(col("Qty").asc)
val result = df.over(partitionWindow)