Если вам нужно сгруппировать по «aud», а затем найти минимальный «приоритет» для «code», вы можете сгруппировать по столбцам «aud» и «code» и найти минимальный «приоритет».
window_spec = Window \
.partitionBy("aud", "code") \
.orderBy("priority")
res = df \
.withColumn("row_num", row_number().over(window_spec)) \
.where(col("row_num") == 1) \
.drop("row_num")
res.show()
Выход:
+----+---+----+--------+
|type|aud|code|priority|
+----+---+----+--------+
| B| AA| jku| 1|
| B| AA| qwe| 1|
| B| BB| qwe| 1|
| B| BB| jku| 1|
+----+---+----+--------+