Я хотел бы выполнить какое-то преобразование, чтобы получить желаемый результат:
До:
Column 1 | Column 2 | Column 3
--------------------------------
NBA | BULLS | ['Michael', 'Jordan', '23']
NBA | BULLS | ['Scottie', 'Pippen', '33']
NBA | LAKERS | ['Kobe', 'Bryant', '24']
После того, как:
Column 1 | Column 4
--------------------------------
NBA | [BULLS : [['Michael', 'Jordan', '23'],['Scottie', 'Pippen', '33']]
,LAKERS : ['Kobe', 'Bryant', '24']]
Schema-накрест
До:
root
|-- string
|-- string
|-- struct
|-- string
|-- string
|-- int
После того, как:
root
|-- string
|-- array:string
|-- array:struct
|-- string
|-- string
|-- int
Edit:
С предложением я смог сделать это:
df.groupby('Column 1', 'Column 2')
.agg(collect_list(struct('Column 3')).alias('Column 4'))
.groupby('Column 1')
.agg(collect_list(struct('Column 2', 'Column 4')).alias('Column 5'))