Hadoop 配置单元中的复杂数据类型问题

Hadoop 配置单元中的复杂数据类型问题,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我正在尝试使用复杂的数据类型在配置单元中创建一个表 我的一列是字符串数组,另一列是映射数组 将数据加载到表中后,当我尝试查询数据时,在第三列(映射数组)中没有得到所需的结果 以下是我的配置单元查询: 步骤1: create table transactiondb2(order_id int,billtype array<string>,paymenttype array<map<string,int>>)ROW FORMAT DELIMITED FIELDS

我正在尝试使用复杂的数据类型在配置单元中创建一个表

我的一列是字符串数组,另一列是映射数组

将数据加载到表中后,当我尝试查询数据时,在第三列(映射数组)中没有得到所需的结果

以下是我的配置单元查询:

步骤1:

create table transactiondb2(order_id int,billtype array<string>,paymenttype array<map<string,int>>)ROW FORMAT
DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY '|'
MAP KEYS TERMINATED BY '#';
步骤3:

select * from transactiondb2;
我的输出如下:

1       A|B     credit#10|cash#25|emi#30
2       C|D     credit#157|cash#45|emi#35
3       X|Y     credit#25|cash#38|emi#50
4       E|F     credit#89|cash#105|emi#85
5       Z|A     credit#7|cash#79|emi#105
6       D|Y     credit#30|cash#100|emi#101
7       A|Z     credit#50|cash#9|emi#85
8       B|Z     credit#70|cash#38|emi#90

我的输入文件数据如下:

1       A|B     credit#10|cash#25|emi#30
2       C|D     credit#157|cash#45|emi#35
3       X|Y     credit#25|cash#38|emi#50
4       E|F     credit#89|cash#105|emi#85
5       Z|A     credit#7|cash#79|emi#105
6       D|Y     credit#30|cash#100|emi#101
7       A|Z     credit#50|cash#9|emi#85
8       B|Z     credit#70|cash#38|emi#90
我自己解决了


默认情况下,我们不需要明确提到一个映射数组。它从一个映射中获取值,然后按如下所示创建表并加载数据,然后您将获得所需的输出

create table complex(id int,bill array<string>,paytype map<string,int>)
ROW FORMAT
DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY '|'
MAP KEYS TERMINATED BY '#';
createtablecomplex(id-int、bill数组、paytype映射)
行格式
以“\t”结尾的分隔字段
以“|”结尾的集合项目
以“#”结尾的映射键;
create table complex(id int,bill array<string>,paytype map<string,int>)
ROW FORMAT
DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY '|'
MAP KEYS TERMINATED BY '#';