Recuperar n top em cada grupo de um DataFrame no pyspark

Há um DataFrame no pyspark com os dados abaixo:

user_id object_id score
user_1  object_1  3
user_1  object_1  1
user_1  object_2  2
user_2  object_1  5
user_2  object_2  2
user_2  object_2  6

O que eu espero é retornar 2 registros em cada grupo com o mesmo user_id, que precisam ter a pontuação mais alta. Consequentemente, o resultado deve ter a seguinte aparência:

user_id object_id score
user_1  object_1  3
user_1  object_2  2
user_2  object_2  6
user_2  object_1  5

Eu sou realmente novo no pyspark. Alguém poderia me fornecer um trecho de código ou portal para a documentação relacionada desse problema? Muito obrigado!

questionAnswers(3)

yourAnswerToTheQuestion