1、Array
create table hive_array(
name string,
work_locations array< string>
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ',' ;
load data local inpath '/home/hadoop/data/hive_array.txt' overwrite into table hive_array
hive> select * from hive_array;
OK
ruoze [ "shanghai" , "hangzhou" , "beji" ]
jepson [ "hangzhou" , "wuhan" , "shenzheng" ]
Time taken: 0.283 seconds, Fetched: 2 row ( s)
select * from hive_array where array_contains( work_locations, "shanghai" ) ;
select name, work_locations[ 2 ] from hive_array;
select name, size( work_locations) from hive_array;
2、Map
create table hive_map(
id int ,
name string,
members map< string, string> ,
age int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '#'
MAP KEYS TERMINATED BY ':' ;
load data local inpath '/home/hadoop/data/hive_map.txt'
overwrite into table hive_map;
hive> select * from hive_map;
OK
1 zhansan {"father" :"xiaoming" , "mother" :"xiaohuang" , "brother" :"xiaoxu" } 28
2 lis {"father" :"mayun" , "mother" :"huangyi" , "brother" :"guanyu" } 22
3 wangwu {"father" :"wangjianlin" , "mother" :"ruhua" , "sister" :"jianting" } 29
4 mayun {"father" :"mayongzhen" , "mother" :"angelababy" } 26
select name, members[ "father" ] from hive_map;
select map_keys( members) from hive_map;
select map_values( members) from hive_map;
select size( members) from hive_map;
3、Struct
create table hive_struct(
ip string,
userinfo struct< name:string, age:int >
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '#'
COLLECTION ITEMS TERMINATED BY ':' ;
load data local inpath '/home/hadoop/data/hive_struct.txt'
overwrite into table hive_struct;
hive> select * from hive_struct;
OK
192.168 .1 .1 {"name" :"zhangsan" , "age" :40 }
192.168 .1 .2 {"name" :"lisi" , "age" :50 }
192.168 .1 .3 {"name" :"wangwu" , "age" :60 }
192.168 .1 .4 {"name" :"zhaoliu" , "age" :70 }
Time taken: 0.206 seconds, Fetched: 4 row ( s)
select ip, userinfo. name, userinfo. age from hive_struct;