Olá, Hayron! Tudo bem com você?
O parâmetro ascending
ordena em ordem crescente caso seu valor seu True
. Portanto se colocarmos que queremos ordenar o ano em ordem crescente os menores valores aparecerão primeiro e dessa forma estaríamos ordenando os alunos mais velhos para os mais novos. Da forma como você está colocando a saída será:
+---------------------+---+----+
|nome |mes|ano |
+---------------------+---+----+
|BRENO VENTUROSO |1 |2009|
|JOAO BOSCO DA FONSECA|3 |2009|
|ADELINA TEIXEIRA |5 |2009|
|HERONDINA PEREIRA |6 |2009|
|WALTER DIAS |9 |2009|
|CARLITO SOUZA |1 |2010|
|CARMINA RABELO |4 |2010|
|DENIS FONSECA |6 |2010|
|ELIO SILVA |7 |2010|
|IRANI DOS SANTOS |12 |2010|
+---------------------+---+----+
Percebe que os alunos mais novos ficaram mais abaixo da tabela? portanto como o enunciado pede para "ordenar este DataFrame dos alunos mais novos para os mais velhos." os alunos que nasceram primeiro devem vir antes, logo o código correto será:
df\
.select('*')\
.orderBy(['ano', 'mes'], ascending=[False, False])\
.show(truncate=False)
Saída
+---------------------+---+----+
|nome |mes|ano |
+---------------------+---+----+
|IRANI DOS SANTOS |12 |2010|
|ELIO SILVA |7 |2010|
|DENIS FONSECA |6 |2010|
|CARMINA RABELO |4 |2010|
|CARLITO SOUZA |1 |2010|
|WALTER DIAS |9 |2009|
|HERONDINA PEREIRA |6 |2009|
|ADELINA TEIXEIRA |5 |2009|
|JOAO BOSCO DA FONSECA|3 |2009|
|BRENO VENTUROSO |1 |2009|
+---------------------+---+----+
Dessa forma ordenamos quem nasceu primeiro aparecendo primeiro no DataFrame.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!