集合数据类型
STRUCT 和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。2 struct()
例如
struct<street:string, city:string>
MAP MAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素 map()
例如map<string, int>
ARRAY 数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用。
Array()例如
array<string>
举例
然后将数据用上一章节写的内容 上传上去,此时可以看到select * from test为:
我们使用select可以筛选map的不同key对应的value值,也可以直接筛选map属性
并且hive中拿不到的值会补上null;如果是筛选不是这个属性的值会返回false。
自动类型转化
注:string只能转化在它能转化的时候,比如string本身就是数字
但如果string不是数字,它就转化不了double
注2:在hive中如果小数点后都为0,则会自动抹掉这个0,并且不会类型转化但是如果小数点后有值,就会类型转化