我希望这个问题的答案是“否”,但是无论如何这里还是会的。
我有一个带有键和数组的表。典型的行可能如下所示:
98c28560-4b48-11e3-9c12-07373d47725c segment-a,segment-b,segment-c
Run Code Online (Sandbox Code Playgroud)
我希望这一行产生三行:
98c28560-4b48-11e3-9c12-07373d47725c segment-a
98c28560-4b48-11e3-9c12-07373d47725c segment-b
98c28560-4b48-11e3-9c12-07373d47725c segment-c
Run Code Online (Sandbox Code Playgroud)
使用最新版本的Hive中可用的标准UDF。
有没有办法做到这一点?
您可以将侧面视图与爆炸结合使用。
例如:使用表guid(字符串)和段(array <string>)
进行表测试
select * from test
99999999-4b48-11e3-9c12-07373d47725c ["segment-a1","segment-b1","segment-c1"]
98c28560-4b48-11e3-9c12-07373d47725c ["segment-a2","segment-b2","segment-c2"]
select guid, seg from test lateral view explode(segs) x as seg;
99999999-4b48-11e3-9c12-07373d47725c segment-a1
99999999-4b48-11e3-9c12-07373d47725c segment-b1
99999999-4b48-11e3-9c12-07373d47725c segment-c1
98c28560-4b48-11e3-9c12-07373d47725c segment-a2
98c28560-4b48-11e3-9c12-07373d47725c segment-b2
98c28560-4b48-11e3-9c12-07373d47725c segment-c2
Run Code Online (Sandbox Code Playgroud)
注意:
配置单元0.12