2013-03-22 60 views
2

我有一个名为exampleTable的两列数组字符串的表。横向视图在配置单元中爆炸

Array<string> col1 Array<string> col2 
["a", "b" , "c" ]  ["x","y","z"] 
["aa", "bb" , "cc" ]  ["xx","yy","zz"] 

我的目标是产生这样的

col1     col2 
"a"      "x" 
"b"      "y" 
"c"      "z" 
"aa"      "xx" 
"bb"      "yy" 
"cc"      "zz" 

我想过使用LATERL VIEW像表:

SELECT myCol1, myCol2 FROM exampleTable 
     LATERAL VIEW explode(col1) myTable1 AS myCol1 
     LATERAL VIEW explode(col2) myTable2 AS myCol2; 

但这会产生这个代替

col1     col2 
"a"      "x" 
"a"      "y" 
"a"      "z" 
"a"      "xx" 
"a"      "yy" 
"a"      "zz" 
"b"      "x" 
"b"      "y" 
"b"      "z" 
"b"      "xx" 
"b"      "yy" 
"b"      "zz" 
"c"      "x" 
"c"      "y" 
"c"      "z" 
"c"      "xx" 
"c"      "yy" 
"c"      "zz" 
"aa"      "x" 
"aa"      "y" 
"aa"      "z" 
"aa"      "xx" 
"aa"      "yy" 
"aa"      "zz" 
"bb"      "x" 
"bb"      "y" 
"bb"      "z" 
"bb"      "xx" 
"bb"      "yy" 
"bb"      "zz" 
"cc"      "x" 
"cc"      "y" 
"cc"      "z" 
"cc"      "xx" 
"cc"      "yy" 
"cc"      "zz" 

如何我可以解决这个问题吗? 在此先感谢。

+0

任何一个? :)谢谢 – user1309258 2013-03-22 06:37:58

+0

你能解决这个问题吗? – Bee 2013-05-15 08:57:05

+0

是的,我做到了。我最终编写了自己的UDF。 – user1309258 2013-06-04 15:59:22

回答

1

您可以使用explode UDTF或explode2 UDTF作为基础编写UDTF。

Refer here使用爆炸2基地。

+0

有没有办法传递2个列值到一个函数? – Bee 2013-05-15 08:57:54