Combinar múltiples registros en un marco de datos basado en una clave en scala spark

Tengo un marco de datos que contiene registros identificados por una clave. Pero puede haber un caso en el que una clave puede volverse repetitiva. Mi objetivo es fusionar todos los registros basados en esa clave de la siguiente manera

Supongamos que mi marco de datos de entrada se ve así:

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

y quiero que mi salida después de la fusión basada en 'a' se vea de la siguiente manera

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

Ahora estoy seguro de esta parte, ya sea uno de los tres valores estarán presentes en un registro para la clave 'a'.

Gracia

Respuestas a la pregunta(1)

Su respuesta a la pregunta