带有其他列的Hive UDTF

Owe*_*wen 2 hadoop hive

我希望这个问题的答案是“否”,但是无论如何这里还是会的。

我有一个带有键和数组的表。典型的行可能如下所示:

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。

有没有办法做到这一点?

Lor*_*dig 5

您可以将侧面视图爆炸结合使用。
例如:使用表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