目录
一、array类型
1.查询array内包含的指定词信息
2.查询array中元素的个数
3.查询array内指定序号信息
二、map类型
1.查询指定value
2.取出map全部key
3.取出map全部value
4.size查看map元素个数
5.查看指定数据是否在map内
三、struct类型
1.查询info信息
一、array类型
建表语句:
create table 表名(要素1 类型,要素2 类型,要素3 array<类型>) row format delimited fileds terminated by '\t' collection items terminated by ',';
select * from table_name where ARRAY_CINTAINS(属性,'指定词');
select size(array_name) locations from table_name;
select 数组[序号] from table_name;
map数据类型就是:Key-value型数据类型,例如以下数据的members列就是key-value
建表语句:
create table table_name(要素1 类型,要素2 类型,要素3 map<类型,类型>) row format delimited fields terminated by ' , ' collection items terminated by ' # ' map keys terminated by ' : ';
select 要素[value] from table_name;
select map_keys(map要素) from table_name;
select map_values(map要素) from table_name;
select size(map要素) from table_name;
select * from table_name where array_contains(map_keys[或values](map要素),'指定数据');
struct类型是复合类型,可以在一个列中存入多个子列,每个子列允许设置类型和名称,有如下数据文件,说明:字段之间#分隔,struct之间冒号分隔
建表语句:
create table table_name(要素1,info struct<子列1:类型,子列2:类型>) row format delimited fields terminated by ' # ' collection items terminated by ' : ';
select info.子列名 from table_name;