pyspark / dataframe - groupby (s), преобразование схемы - PullRequest
0 голосов
/ 04 сентября 2018

Я хотел бы выполнить какое-то преобразование, чтобы получить желаемый результат:

До:

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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...