hive 复合类型_hive的复合数据类型

hive中的复合数据类型

Array

array中的数据为相同类型,例如,假如array A中元素['a','b','c'],则A[1]的值为'b'

数据结构如下:

zhangsanbeijing,shanghai,tianjin,hangzhou

wangwushanghai,chengdu,wuhan,haerbin

create table complex_array(name string,work_locations array) row format delimited fields terminated by '' collection items terminated by ',';

load data local inpath '/home/work/data/test1.txt' into table complex_array;

Map

可以通过["指定key名称"]访问

1,zhangsan,唱歌:非常喜欢-跳舞:喜欢-游泳:一般般

2,lisi,打游戏:非常喜欢-篮球:不喜欢

create table complex_map(id int,name string,hobby map)

row format delimited

fields terminated by ','

collection items terminated by '-'

map keys terminated by ':';

load data local inpath '/root/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 ',';

Struct

集合元素可以类型不一样

例如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)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

COLLECTION ITEMS TERMINATED BY ':';

load data local inpath '/home/work/data/test3.txt' into table complex_struct;

select info.age from complex_struct;

以上就是hive的复合数据类型的全部内容。

你可能感兴趣的:(hive,复合类型)