Mesclar vários registros em um dataframe com base em uma chave no scala spark

Eu tenho um quadro de dados que contém registros identificados por uma chave. Mas pode haver um caso em que uma chave pode se tornar repetitiva. Meu objetivo é mesclar todos os registros com base nessa chave da seguinte maneira

Vamos supor que meu dataframe de entrada seja algo como isto:

key | value1 | value2 | value3
-------------------------------
a   | 1      | null   | null
a   | null   | 2      | null
a   | null   | null   | 3

e eu quero que minha saída após a mesclagem com base em 'a' seja semelhante à seguinte

key | value1 | value2 | value3
-------------------------------
a   | 1      | 2      | 3

Agora estou certo de que, nesta parte, os três valores estarão presentes em um registro da chave 'a'.

obrigado

questionAnswers(1)

yourAnswerToTheQuestion