Hive知识点(十) --Hive数据结构[Array Map Struct json]

1.Array

1.创建表
create table 表名(id int,other Array<string>) row format delimited fileds terminated by '\t' collection items terminated by ',' ;
2.加载数据
load data local 'filepath' into table 表名;
3.查看表
select * from 表名;
4.查看表结构
desc 表名;
5.查看数组【下标由0开始】
select 字段 数组字段[0] from 表名;   #仅仅查看数据的第一个元素
如:
select id other[0] from hive1;
6.查看数组元素数量
select 字段 size(数组字段)from 表名;   #使用size() 函数查看数组元素数量

2.Map

key value

1.创建表
create table 表名(字段 字段类型,Map字段 map<key类型,value类型>) row format delimited fields terminated by '\t' collection items terminated by '#';
数据类型:
	1	ZH,A:a#B:b#C:c
	2	HE,a:A#b:B#c:C
2.加载数据
load data local inpath 'filepath into table 表名;
3.查看表
select * from 表名;
	1 ZH {"A":"a","B":"b","C":"c"}
	2 HE {"a":"A","b":"B","c":"C"}
4.获取Map中的key
select 字段,map_keys(Map字段) from 表名;   #使用map_keys()函数
	结果: 1 {"A","B","C"}  
5.查看Map中的value
select 字段 Map字段['key1'],Map字段['key2'] from 表名;
如:
select id,member['A'],member['B'] from hive1;

3.Struct

1.创建表
create table 表名(字段 字段类型,struct字段 struct<字段1:字段类型,字段1:字段类型,...>) row format delimited fields terminated by '#' collection items terminated by ':';
数据类型:
	192.168.1.1#2H:50
	192.167.1.2#5R:20
2.加载数据
load data local inpath 'filepath' into table 表名;
3.查看表
select * from 表名;
	192.168.1.1	{"字段1":"2H","字段2":"50"}
	192.167.1.2	{"字段1":"5R","字段2":"20"}
4.获取struct
select 字段,struct.字段1,struct.字段2 from 表名;
如:
select ip member.userinfo, userinfo.age from hive1;

4.json

1.创建表
create table 表名(json 数据类型);
{“movie”:“2189”,“rate”:“4”,“time”:“0730”}
{“movie”:“2185”,“rate”:“3”,“time”:“0720”}
2.加载数据
3.拆分json
select json_tuple(json ‘movie’,‘rate’,‘time’) from 表名;
结果:2189 4 0730
2185 3 0720

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值