1、map结构
- 定义:map<datatype1,datatype2> 类型1和类型2可以一样
map<string,double> 两种数据类型合成
例子:{“data":1232.23,”data2":323.0}
与其他语言一样,是map{key1:value1,key2:value2,...}
- 访问可以使用列名来访问: select map1['name'] from table ;
- map_values(map):取map字段全部value : select map_values(map1) from table
如果存在则显示value如果不存在则显示的是null
- map大小:使用size()
size(categories)
展开使用:
lateral view explode进行行转列:
select name,id
from table_test
lateral view explode(map_1) table1 as name,id;
2.array
定义:array类型是[datatype,datatype,...]
- 查看大小亦可使用:size()函数
查找某个数据是否存在,可使用lateral view explode进行行转列。如果有唯一索引的话,再使用group by 综合collect_list 合并。
例子: