array中的数据为相同类型,例如,假如array A中元素[‘a’,‘b’,‘c’],则A[1]的值为’b’
数据结构如下:
zhangsan beijing,shanghai,tianjin,hangzhou
wangwu shanghai,chengdu,wuhan,haerbin
create table complex_array(name string,work_locations array< string > ) row format delimited fields terminated by ‘\t’ collection items terminated by ‘,’; load data local inpath ‘/export/data/hivedata/complex_array.txt’ into table complex_array; 查看array的元素 用下标进行寻找,类似于其他编程语言中的数组访问 select work_locations[1] from complex_array;
可以通过[“指定key名称”]访问
1,zhangsan,唱歌:非常喜欢‐跳舞:喜欢‐游泳:一般般
2,lisi,打游戏:非常喜欢‐篮球:不喜欢
create table complex_map(id int,name string,hobby map< string,string >) row format delimited fields terminated by ‘,’ collection items terminated by ‘‐’ map keys terminated by ‘:’;
load data local inpath ‘/export/data/hivedata/complex_map.txt’ into table complex_map;
以普通字符串映射:
create table complex_map_s(id int,name string,hobby string) row format delimited fields terminated by ‘,’;
集合元素可以类型不一样 例如c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域a
1,zhou:30
2,yan:30
3,chen:20
4,li:80
create table complex_struct(id int, info struct<name:STRING, age:INT>) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ COLLECTION ITEMS TERMINATED BY ‘:’;
load data local inpath ‘/export/data/hivedata/complex_struct.txt’ into table complex_struct;
select info.age from complex_struct;