hive中使用map和array
2017-04-29 10:58
309 查看
create table table1 (a array<int>, b array<string>) ROW FORMAT
DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY ',';
load data local inpath "/files/arraytest.txt" overwrite
into table table1;
arraytest.txt中的数据形式为:(不同数组间用\t分割,同一数组内不同元素用逗号分割)
b00,b01 b00,b01
b00,b01 b00,b01
b00,b01 b00,b01
b00,b01 b00,b01
Hive> select * from table1;
OK
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
Time taken: 0.056 seconds
hive> select a from table1;
OK
["b00","b01"]
["b00","b01"]
["b00","b01"]
["b00","b01"]
Time taken: 15.903 seconds
hive> select a[0] from table1;
OK
b00
b00
b00
b00
Time taken: 12.913 seconds
hive> select * from table1 where a[0] = b[0];
OK
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
Time taken: 11.803 seconds
关于map的操作说明:
hive> CREATE TABLE table2 (foo STRING , bar MAP<STRING, STRING>)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '\t'
> COLLECTION ITEMS TERMINATED BY ','
> MAP KEYS TERMINATED BY ':'
> STORED AS TEXTFILE;
hive> load data local inpath "../hive/examples/files/maptest.txt" overwrite into table table2;
maptest.txt中的文件格式为:(不同列之间用一个tab分割,map中key和value用冒号分割,不同K/V间用逗号分割)
a00 b0:b01,b1:b11
a01 b1:b11,b2:b12
a02 b2:b12,b3:b13
a03 b3:b13,b4:b14
hive> select bar from table2;
OK
{"b0":"b01","b1":"b11"}
{"b1":"b11","b2":"b12"}
{"b2":"b12","b3":"b13"}
{"b3":"b13","b4":"b14"}
Time taken: 19.237 seconds
怎么根据 key来查询value呢?
hive> select bar['b1'] from table2;
OK
b11
b11
NULL
NULL
Time taken: 11.65 seconds
查看map中的键值对个数:
hive> select size(bar) from table2;
OK
2
2
2
2
Time taken: 12.137 seconds
DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY ',';
load data local inpath "/files/arraytest.txt" overwrite
into table table1;
arraytest.txt中的数据形式为:(不同数组间用\t分割,同一数组内不同元素用逗号分割)
b00,b01 b00,b01
b00,b01 b00,b01
b00,b01 b00,b01
b00,b01 b00,b01
Hive> select * from table1;
OK
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
Time taken: 0.056 seconds
hive> select a from table1;
OK
["b00","b01"]
["b00","b01"]
["b00","b01"]
["b00","b01"]
Time taken: 15.903 seconds
hive> select a[0] from table1;
OK
b00
b00
b00
b00
Time taken: 12.913 seconds
hive> select * from table1 where a[0] = b[0];
OK
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
Time taken: 11.803 seconds
关于map的操作说明:
hive> CREATE TABLE table2 (foo STRING , bar MAP<STRING, STRING>)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '\t'
> COLLECTION ITEMS TERMINATED BY ','
> MAP KEYS TERMINATED BY ':'
> STORED AS TEXTFILE;
hive> load data local inpath "../hive/examples/files/maptest.txt" overwrite into table table2;
maptest.txt中的文件格式为:(不同列之间用一个tab分割,map中key和value用冒号分割,不同K/V间用逗号分割)
a00 b0:b01,b1:b11
a01 b1:b11,b2:b12
a02 b2:b12,b3:b13
a03 b3:b13,b4:b14
hive> select bar from table2;
OK
{"b0":"b01","b1":"b11"}
{"b1":"b11","b2":"b12"}
{"b2":"b12","b3":"b13"}
{"b3":"b13","b4":"b14"}
Time taken: 19.237 seconds
怎么根据 key来查询value呢?
hive> select bar['b1'] from table2;
OK
b11
b11
NULL
NULL
Time taken: 11.65 seconds
查看map中的键值对个数:
hive> select size(bar) from table2;
OK
2
2
2
2
Time taken: 12.137 seconds
相关文章推荐
- hive array、map、struct使用
- Hive复合数据类型array,map,struct的使用
- hive:array,map,struct 文本批量导入和str_to_map,named_struct多条插入使用
- HIVE的数据类型hive array、map、struct使用
- 关于Hive中的复杂数据类型Array,Map,Structs的一些使用案例
- hive array、map、struct使用
- HIVE中map,array和structs使用
- Hive数据类型之Structs、Array、Map的使用
- Hive 中 Array、Map、Struct 的使用
- hive 的ARRAY,MAP,STRUCT使用
- hive复杂格式array,map,struct使用
- hive array、map、struct使用
- 关于Hive中的复杂数据类型Array,Map,Structs的一些使用案例
- hive array、map、struct使用
- Hive学习笔记 --- Array, Map, Struct类型使用
- HIVE中map,array使用
- hive--[ array、map、struct]使用
- hive发杂数据结构的使用,struct,array,map
- hive array、map、struct使用
- HIVE中map,array和structs使用