hive提供一种复合类型的数据

struct:可以使用“.”来存取数据
map:可以使用键值对来存取数据
array:array中存取的数据为相同类型,其中的数据可以通过下表获取数据
 
创建 struct类型
create table student_struct(id INT, info struct<name:STRING, age:INT>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' //指定表在加载数据时候的列分割符
COLLECTION ITEMS TERMINATED BY ':'; //指定每个字段之间的item的分隔符
导入测试数据
1,zhang:24
2,wang:23
3,feng:22
4,li:22
5,zhou:21
6,xing:20
7,cai:19
8,yi:18
9,lan:17
查询表中数据
使用struct的"."来查询数据
hive> select*from student_struct where info.age>20;
OK
1 {"name":"zhang","age":24}
2 {"name":"wang","age":23}
3 {"name":"feng","age":22}
4 {"name":"li","age":22}
5 {"name":"zhou","age":21}
Time taken: 2.31 seconds, Fetched: 5 row(s)
创建array
create table student_array(id INT, stuArray array<String>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY ':';
加载测试数据(stuArray里面存储的是相同的数据类型,可以有多个值)
同 struct 数据
查询表中数据(array类型,可以通过你创建表时定义列的别名,通过下标来获取数据)
hive> select*from student_array where stuArray[]>20;
OK
1 ["zhang","24"]
2 ["wang","23"]
3 ["feng","22"]
4 ["li","22"]
5 ["zhou","21"]
Time taken: 2.63 seconds, Fetched: 5 row(s)
创建Map(stuMap可以有多个,我这里写了两个)
create table student_map(id string, stuMap map<string, int>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY ':';
导入测试数据
1 zhang:24,shangHai:100
2 wang:23,shangHai:200
3 feng:22,shangHai:1900
4 li:22,shangHai:2900
5 zhou:21,shangHai:1200
6 xing:20,shangHai:1200
7 cai:19,shangHai:600
8 yi:18,shangHai:7600
9 lan:17,shangHai:8000
查询数据
hive> select * from student_map where stuMap['shangHai']=100;
OK
1 {"zhang":24,"shangHai":100}
Time taken: 0.944 seconds, Fetched: 1 row(s)
hive>

最新文章

  1. 转:聊聊mavenCenter和JCenter
  2. SAP CRM 使用Javascript触发SAP Server Event
  3. Java_Map_Map详解
  4. 洛谷P1410 子序列
  5. MFC ADO连接Oracle12c数据库 客户端环境搭建
  6. SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
  7. java Thread编程(三) 同步的两种不同实现方式
  8. 【转】Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
  9. cve-2015-1635 poc
  10. c++ timer基于win消息队列
  11. Linux日志文件系统(EXT4、XFS、JFS)及性能分析
  12. Android打包常见错误之Export aborted because fatal lint errors were found
  13. Windows server 2008系统下FTP服务器的安装
  14. BZOJ 3293 分金币
  15. 如何利用【百度地图API】进行定位?非GPS定位
  16. BeanInstantiationException: Failed to instantiate [java.time.LocalDateTime]
  17. 基于nodejs 的多页面爬虫
  18. Struts2漏洞解决
  19. Java并发框架——AQS超时机制
  20. String s = new String(&quot;xyz&quot;);产生了几个对象?

热门文章

  1. struts-hibernate-ajax完成区县和街道级联下拉框功能(二补充使用json解析list结果集,ajax循环json层级处理)
  2. windows bat批处理语法简析
  3. JS-自制提速小工具:开发页面时需要按比例计算宽高值的快速计算器
  4. String、StringBuffer与StringBuilder之间区别
  5. MySQL的if,case语句使用总结
  6. effective java 学习心得
  7. java使double保留两位小数的多方法 java保留两位小数
  8. RESTful API URI 设计的一些总结
  9. VBA学习思路
  10. 关于Window Server2008 服务器上无法播放音频文件的解决方案