0
Ich habe Daten wie dieseWie zwei Zeilen aus mehreren Zeilen einer Spalte auszuwählen
ID | Race | start | duration
-------|---------| ------| ---------
234 | 1010 | turtle| 100
235 | 1010 | turtle| 101
236 | 1010 | turtle| 99
237 | 1010 | rabbit| 199
238 | 1010 | rabbit| 201
239 | 1010 | rabbit| 85
240 | 9898 | rabbit| 185
241 | 9898 | rabbit| 205
242 | 9898 | rabbit| 505
243 | 9898 | turtle| 155
244 | 9898 | turtle| 104
von diesem würde ich wählen mag:
- ein
turtle
und einrabbit
aus jeder Gruppe - der eine muss die geringste Dauer in seiner Gruppe haben
Beispiel:
Basierend auf obigen Daten sollten die Ergebnisse sein:
ID | Race | start | duration
-------|---------| ------| ---------
236 | 1010 | turtle| 99
239 | 1010 | rabbit| 85
240 | 9898 | rabbit| 185
244 | 9898 | turtle| 104
Was ich getan habe:
w = Window().partitionBy("race").orderBy(col("duration").desc())
(df
.withColumn("rn", rowNumber().over(w))
.where(col("rn") == 1)
.select("race", "duration")).show()
Doch diese Gruppen die Daten und ich bin nicht immer die gewünschten Ergebnisse.
'partitionBy („Rasse“," Start ")"? – zero323