hive 使用 map 类型字段

Posted 东海陈光剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive 使用 map 类型字段相关的知识,希望对你有一定的参考价值。

创建一个map类型字段

create table test3(field2 map<string,string>) 
row format delimited fields terminated by ',' 
collection items terminated by "|" 
map keys terminated by ":";

map keys terminated by ":"表示键值对之间用":"来分割

str_to_map 方式

同样的,先使用sql方式插入

insert into test3(field2)values(str_to_map("name:zhangsan,age:25")),(str_to_map("name:lisi,age:23"));

再导入文件,文件内容如下:

load data local inpath  '/Users/zhangsheng/hive/note/hive/test.txt' into table test3;

map的访问通过map[key]的形式进行,测试一下

select * from test3;
select field2["name"] as name,field2["age"] as age from test3;
select * from test3 where field2["age"] > 25;

用 map() 函数

select map("pay_order_cnt", 10, "pay_order_amt", 1000)

以上是关于hive 使用 map 类型字段的主要内容,如果未能解决你的问题,请参考以下文章

Hive复杂数据类型:array、map、struct

Hive中创建结构体数组以及map

Spark存储Parquet数据到Hive,对maparraystruct字段类型的处理

hive 非正确json格式字段造成查询错误

如何在Hive中使用Map类型

Hive之Map常用方法