2013-03-22 4 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

+0

Вы могли решить это? – Bee

+0

Да, я это сделал. В итоге я написал свой собственный UDF. – user1309258

ответ

1

Вы можете написать UDTF, используя взломанный UDTF или explode2 UDTF в качестве базы.

Refer here для использования взрывается2 база.

+0

Есть ли способ передать 2 значения столбца к функции? – Bee