我有一个hive表,其中包含一个示例行:
LX556, 22, [“11”, “12”, “13”], [“FL”, “CA”, “TX”]
第3列和第4列的数组长度将相同!2我想打破数组并创建新行。输出:
LX556, 22, 11, FL. LX556, 22, 12, CA. LX556, 22, 13, TX.
我是新来的Hive,真的需要帮助弄清楚这一点。数组的长度是不断变化的,它不是静态的,有时它的长度是3或4或5,这就是我卡住的地方。
vnjpjtjt1#
可以考虑使用posexplode。
with sample_table as ( select 'LX556' col1, 22 col2, array('11', '12', '13') arr1, array('FL', 'CA', 'TX') arr2 ) select col1, col2, val1, val2 from sample_table t lateral view posexplode(arr1) tf1 as pos1,val1 lateral view posexplode(arr2) tf2 as pos2,val2 where pos1 = pos2
查询结果
1条答案
按热度按时间vnjpjtjt1#
可以考虑使用posexplode。
查询结果