如何在行中消耗数组值!! 使用Hive SQL

use*_*693 5 hadoop hive

我有一个4列的表,一列(项)类型是ARRAY,其他是字符串.

ID   |    items                                  | name  |  loc  
_________________________________________________________________

id1  | ["item1","item2","item3","item4","item5"] | Mike | CT
id2  | ["item3","item7","item4","item9","item8"] | Chris| MN
.
.
Run Code Online (Sandbox Code Playgroud)

在这里,我想要非标准化的输出

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
Run Code Online (Sandbox Code Playgroud)

我不是Hive SQL专家,请帮我解决这个问题.

Kis*_*ore 8

试试这个:

 SELECT ID,itemsName,name,loc
 FROM Table
 LATERAL VIEW explode(items) itemTable AS itemsName;
Run Code Online (Sandbox Code Playgroud)

在explode(items)中,items是你存储的表列,Table是你的Stored表.