我有一个包含ID、ID 1、ID 2、col 1、col 2和col 3字段的CSV文件...我需要根据ID字段对记录进行分组,并将其转换为UDT列表。
ex:
ID ID1 ID2 COL1 COL2 COL3 COL4
1 AA 01 A B C D
1 AA 02 A B C D
1 AA 02 B C D E
1 AA 03 A B C D
2 BB 01 A B C D
2 BB 02 A B C D
3 CC 01 A B C D
3 CC 01 B C D E
THE OUTPUT SHOULD BE
1,[{ID1:"AA",ID2:"01"},{ID1:"AA",ID2:"02"},{ID1:"AA",ID2:"03"}]
2,[{ID1:"BB",ID2:"01"},{ID1:"BB",ID2:"02"}]
3,[{ID1:"CC",ID2:"01"}] (grouped by ID; rest of the ID fields in a list array)
我尝试collect_list / collect_set对字段进行分组,但无法将它们转换为数组。
1条答案
按热度按时间yrefmtwq1#
使用结构体(ID 1,ID 2);然后跟随collect_list(〈结构列)over(ID)