0


Hive复杂数据类型(array类型、map类型、struct类型)

一、array类型

    建表语句:

    create table 表名(要素1 类型,要素2 类型,要素3 array<类型>)  row format delimited fileds  terminated by '\t' collection items terminated by ',';![](https://img-blog.csdnimg.cn/76d424f8969840b48b4a8be90e494efe.png)![](https://img-blog.csdnimg.cn/0cd8b73c79a94d48b6201e7c76bcc7a5.png)
1.查询array内包含的指定词信息
    select * from table_name where ARRAY_CINTAINS(属性,'指定词');![](https://img-blog.csdnimg.cn/bf17d75e0726440482b65486d97d7356.png)
2.查询array中元素的个数
    select size(array_name) locations from table_name;![](https://img-blog.csdnimg.cn/d85c6053fdf143699b29c68793ca45dd.png)
3.查询array内指定序号信息
    select 数组[序号] from table_name;        ![](https://img-blog.csdnimg.cn/42b9290b68cb44849f2a128bcc515d15.png)

二、map类型

    map数据类型就是:Key-value型数据类型,例如以下数据的members列就是key-value![](https://img-blog.csdnimg.cn/398cbf07589d43afb7e273dbcf2a6ba7.png)

    建表语句:

    create table table_name(要素1 类型,要素2 类型,要素3 map<类型,类型>) row format delimited fields terminated by ' , ' collection items terminated by ' # ' map keys terminated by ' : ';![](https://img-blog.csdnimg.cn/de1042ef02054c0f9906a9780988a729.png)![](https://img-blog.csdnimg.cn/0b4b205fd21f418fa95d2ce4d92b44a3.png)
1.查询指定value
    select 要素[value] from table_name;![](https://img-blog.csdnimg.cn/f16697bd3f8f49c4833b2fe17e0e9e46.png)
2.取出map全部key
    select map_keys(map要素) from table_name;![](https://img-blog.csdnimg.cn/0e69f8c44d8144c78c832a4d7639e37a.png)
3.取出map全部value
    select map_values(map要素) from table_name;![](https://img-blog.csdnimg.cn/4db221d3e09b4241adbb474d169047d4.png)
4.size查看map元素个数
    select size(map要素) from table_name;![](https://img-blog.csdnimg.cn/82db4273a7f345f2b4c09137c5e8c887.png)
5.查看指定数据是否在map内
    select * from table_name where array_contains(map_keys[或values](map要素),'指定数据');![](https://img-blog.csdnimg.cn/271034ff61f8422daa4ac380d389bab0.png)

三、struct类型

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

    建表语句:

    create table table_name(要素1,info struct<子列1:类型,子列2:类型>) row format delimited fields terminated by ' # ' collection items terminated by ' : ';![](https://img-blog.csdnimg.cn/924dfdbc071944b18907ccc029365820.png)![](https://img-blog.csdnimg.cn/994085ea531b4023906d248723ae7330.png)
1.查询info信息
    select info.子列名 from table_name;


本文转载自: https://blog.csdn.net/2202_75347029/article/details/132687211
版权归原作者 吗喽也是命 所有, 如有侵权,请联系我们删除。

“Hive复杂数据类型(array类型、map类型、struct类型)”的评论:

还没有评论