Como manter a ordem dos valores ao fazer rollup em um spark Dataframe

Como posso fazer um rollup do quadro de dados abaixo, ou seja, ter apenas um registro para a chave comum e seus valores como uma tupla e manter a ordem dos valores.

Consigo fazer o roll up, mas não consigo manter a ordem dos valores.

 +-------------
    |    key| val|
    +-------------
    |      A|4816|
    |      A|5732|
    |      A|5542|
    |      B|5814|
    |      B|5812|
    |      B|5499|
    |      C|5992|
    |      C|7299|
    |      C|5193|

O / P esperado

key | val
A   | (4816, 5732, 5542)
B   | (5814, 5812, 5499)
C   | (5992, 7299, 5193)

Como posso manter a ordem dos valores enquanto faço o rollup?

questionAnswers(1)

yourAnswerToTheQuestion