Hive复杂数据类型(array类型、map类型、struct类型)
作者:mmseoamin日期:2024-02-06

目录

​一、array类型

        1.查询array内包含的指定词信息

        2.查询array中元素的个数

        3.查询array内指定序号信息

二、map类型

        1.查询指定value

        2.取出map全部key

        3.取出map全部value

        4.size查看map元素个数

        5.查看指定数据是否在map内

三、struct类型

        1.查询info信息


Hive复杂数据类型(array类型、map类型、struct类型),第1张

一、array类型

        建表语句:

        create table 表名(要素1 类型,要素2 类型,要素3 array<类型>)  row format delimited fileds  terminated by '\t' collection items terminated by ',';Hive复杂数据类型(array类型、map类型、struct类型),第2张Hive复杂数据类型(array类型、map类型、struct类型),第3张

        1.查询array内包含的指定词信息

        select * from table_name where ARRAY_CINTAINS(属性,'指定词');Hive复杂数据类型(array类型、map类型、struct类型),第4张

        2.查询array中元素的个数

        select size(array_name) locations from table_name;Hive复杂数据类型(array类型、map类型、struct类型),第5张

        3.查询array内指定序号信息

        select 数组[序号] from table_name;        Hive复杂数据类型(array类型、map类型、struct类型),第6张

二、map类型

        map数据类型就是:Key-value型数据类型,例如以下数据的members列就是key-valueHive复杂数据类型(array类型、map类型、struct类型),第7张

        建表语句:

        create table table_name(要素1 类型,要素2 类型,要素3 map<类型,类型>) row format delimited fields terminated by ' , ' collection items terminated by ' # ' map keys terminated by ' : ';Hive复杂数据类型(array类型、map类型、struct类型),第8张Hive复杂数据类型(array类型、map类型、struct类型),第9张

        1.查询指定value

        select 要素[value] from table_name;Hive复杂数据类型(array类型、map类型、struct类型),第10张

        2.取出map全部key

        select map_keys(map要素) from table_name;Hive复杂数据类型(array类型、map类型、struct类型),第11张

        3.取出map全部value

        select map_values(map要素) from table_name;Hive复杂数据类型(array类型、map类型、struct类型),第12张

        4.size查看map元素个数

        select size(map要素) from table_name;Hive复杂数据类型(array类型、map类型、struct类型),第13张

        5.查看指定数据是否在map内

        select * from table_name where array_contains(map_keys[或values](map要素),'指定数据');Hive复杂数据类型(array类型、map类型、struct类型),第14张

三、struct类型

        struct类型是复合类型,可以在一个列中存入多个子列,每个子列允许设置类型和名称,有如下数据文件,说明:字段之间#分隔,struct之间冒号分隔

Hive复杂数据类型(array类型、map类型、struct类型),第15张

        建表语句:

        create table table_name(要素1,info struct<子列1:类型,子列2:类型>) row format delimited fields terminated by ' # ' collection items terminated by ' : ';Hive复杂数据类型(array类型、map类型、struct类型),第16张Hive复杂数据类型(array类型、map类型、struct类型),第17张

        1.查询info信息

        select info.子列名 from table_name;

Hive复杂数据类型(array类型、map类型、struct类型),第18张