obtener TopN de todos los grupos después del grupo utilizando Spark DataFrame

Tengo un Spark SQL DataFrame:

user1 item1 rating1
user1 item2 rating2
user1 item3 rating3
user2 item1 rating4
...

Cómo agrupar por usuario y luego regresarTopN artículos de todos los grupos que usan Scala?

Código de similitud con Python:

df.groupby("user").apply(the_func_get_TopN)

Respuestas a la pregunta(1)

Su respuesta a la pregunta