spark scala -如何从CSV文件创建UDT(cassandra用户数据类型[list< UDT>])

jm81lzqq  于 2023-03-18  发布在  Cassandra
关注(0)|答案(1)|浏览(135)

我有一个包含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对字段进行分组,但无法将它们转换为数组。

yrefmtwq

yrefmtwq1#

使用结构体(ID 1,ID 2);然后跟随collect_list(〈结构列)over(ID)

相关问题