創建一個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)