Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
View 配置单元侧面视图,示例中配置单元表有1列作为阵列_View_Hive_Sample_Query By Example_Lateral - Fatal编程技术网

View 配置单元侧面视图,示例中配置单元表有1列作为阵列

View 配置单元侧面视图,示例中配置单元表有1列作为阵列,view,hive,sample,query-by-example,lateral,View,Hive,Sample,Query By Example,Lateral,我的用例是在配置单元中有一个表,其中一列为INT,一列为数组数据类型。我想水平显示它。简单的解释,假设您的表包含名称和资格等数据 表格内容: Amar ["Btech","Mtech"] Amala ["Bsc","Msc","Mtech"] Akash ["Btech","Mba"] 表格创建: create table raw2(name string, qual array<string>); 创建表raw2(名称字符串,qual数组); 查询: sele

我的用例是在配置单元中有一个表,其中一列为INT,一列为数组数据类型。我想水平显示它。

简单的解释,假设您的表包含名称和资格等数据

表格内容:

Amar    ["Btech","Mtech"]
Amala   ["Bsc","Msc","Mtech"]
Akash   ["Btech","Mba"]
表格创建:

create table raw2(name string, qual  array<string>);
创建表raw2(名称字符串,qual数组);
查询:

select name, myq from <table> lateral view explode(qual) q as myq;
选择名称,侧视图中的myq分解(qual)q作为myq;

使用名称收藏夹、int类型id、字符串类型名称和字符串类型数组的fav_song创建表

hive> CREATE TABLE Favourites
> (id INT, Name STRING, fav_song ARRAY<STRING>);
id name fav_song

1 Akshay['Rang De Basanti','Live it Up']

2奏鸣曲[《所有的星星》,《1000年》]

查询后的行将显示为:

hive> SELECT p.id,p.name,colors.my_fav_song FROM default.Favourites P
LATERAL VIEW EXPLODE(p.fav_song) fv as my_fav_song;
我的名字叫我最爱的歌

1 Akshay Range De Basanti

1阿克什尽情享受吧

2所有星星的奏鸣曲


2 Sonal 1000 Year

Explode函数将采集数据类型的每个元素显示为单行

CREATE TABLE Products
(id INT, ProductName STRING, ProductColorOptions ARRAY<STRING>);
select * from products;
红色的

绿色的

但我想与其他列(如id)连接,但这会导致错误

在这种情况下,我们需要使用横向视图。横向视图为分解的列创建一个虚拟表,并与基表连接

我们不必担心虚拟表,因为它是由配置单元内部完成的

SELECT p.id,p.productname,colors.colorselection FROM default.products P
LATERAL VIEW EXPLODE(p.productcoloroptions) colors as colorselection;
我看红色的

1手表是绿色的

2件蓝色衣服


为什么在
中有
colors
关键字,从默认值中选择p.id、p.name、colors.my\u fav\u song。收藏夹p横向视图分解(p.fav\u song)fv作为my\u fav\u song查询?嗨,Ankur,我有相同类型的数据集,我正在尝试使用数组中的值获取多行。如果我们要将一个表连接到您最后创建的表,该怎么办?它似乎被蜂巢拒绝了
select explode(ProductColorOptions ) from products;
SELECT p.id,p.productname,colors.colorselection FROM default.products P
LATERAL VIEW EXPLODE(p.productcoloroptions) colors as colorselection;