Hive表的结构( tbl_a
)具体如下:
name | ids
A | [1,7,13,25168,992]
B | [223, 594, 3322, 192928]
C | null
...
另一张Hive桌( tbl_b
)在id到新的\u id之间有相应的Map。此表太大,无法加载到内存中
id | new_id
1 | 'aiks'
2 | 'ficnw'
...
我打算创建一个新的配置单元表,使其结构与 tbl_a
,但将id数组转换为新的\u id数组:
name | ids
A | ['aiks','fsijo','fsdix','sssxs','wie']
B | ['cx', 'dds', 'dfsexx', 'zz']
C | null
...
有谁能告诉我如何在sparksql或sparkdataframe中实现这个场景?谢谢!
1条答案
按热度按时间mkh04yzy1#
这是一个昂贵的操作,但您可以使用coalesce、explode和left outer join来实现它,如下所示: