如何在行中增加数组值!使用Hive SQL [英] how to expend array values in rows!! using Hive SQL
本文介绍了如何在行中增加数组值!使用Hive SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含4列的表,其中一列(项目)类型是ARRAY,另一列是字符串。
ID |物品|名称| loc
_________________________________________________________________
id1 | [item1,item2,item3,item4,item5] |迈克| CT
id2 | [item3,item7,item4,item9,item8] |克里斯| MN
。
。
在这里,我想要非标准化的输出,比如
ID |物品|名称| loc
______________________________________________________
id1 | item1 |迈克| CT
id1 | item2 |迈克| CT
id1 | item3 |迈克| CT
id1 | item4 |迈克| CT
id1 | item5 |迈克| CT
id2 | item3 |克里斯| MN
id2 | item7 |克里斯| MN
id2 | item4 |克里斯| MN
id2 | item9 |克里斯| MN
id2 | item8 |克里斯| MN
我不是Hive SQL专家,请帮我解决这个问题。
解决方案
试试这个:
SELECT ID, itemsName,name,loc
FROM Table
LATERAL VIEW explode(items)itemTable AS itemsName;
在爆炸(项目)中,项目是您存储的表格列,表格是您的存储表格。 / p>
I have a table with 4 columns, one column (items) type is ARRAY and other are string.
ID | items | name | loc
_________________________________________________________________
id1 | ["item1","item2","item3","item4","item5"] | Mike | CT
id2 | ["item3","item7","item4","item9","item8"] | Chris| MN
.
.
Here, I want unnormalized output like
ID | items | name | loc
______________________________________________________
id1 | item1 | Mike | CT
id1 | item2 | Mike | CT
id1 | item3 | Mike | CT
id1 | item4 | Mike | CT
id1 | item5 | Mike | CT
id2 | item3 | Chris | MN
id2 | item7 | Chris | MN
id2 | item4 | Chris | MN
id2 | item9 | Chris | MN
id2 | item8 | Chris | MN
I am not a Hive SQL expert, Please help me out of this.
解决方案
Try this:
SELECT ID,itemsName,name,loc
FROM Table
LATERAL VIEW explode(items) itemTable AS itemsName;
in explode(items) , there items is your stored table column and Table is your Stored table.
这篇关于如何在行中增加数组值!使用Hive SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文