Suppose you have the following table:
describe test; name string ph string category map<string,int> select * from test; name ph category Name1 ph1 {"type":1000,"color":200,"shape":610} Name2 ph2 {"type":2000,"color":200,"shape":150} Name3 ph3 {"type":3000,"color":700,"shape":167}
Map column access:
select ph, category["type"], category["color"] from test; ph1 1000 200 ph2 2000 200 ph3 3000 700
Equivalent using the Hive variable:
set hivevar:nameToID= map("t", category["type"], "c", category["color"], "s", category["shape"]); select ph, ${nameToID}["t"], ${nameToID}["c"] from test; ph1 1000 200 ph2 2000 200 ph3 3000 700
It works on Hive 0.9.0
Lorand bendig
source share