当前位置: 首页 > news >正文

hive 复杂类型

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[1]>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>
 

转载于:https://www.cnblogs.com/zhangXingSheng/p/6223465.html

相关文章:

  • SQL Case when 的使用方法
  • 设计模式--适配器模式Adapter(结构型)
  • 各种文件的mime类型
  • [游戏开发-学习笔记]菜鸟慢慢飞(三)-官方教程学习小心得
  • Object类中getClass()
  • dubbo问题求解
  • 单例模式浅析
  • Django基于Pycharm开发之二 [使用django adminSite]
  • bodyParser中间件的研究
  • asp.net mvc adminlte第一波
  • 【转】TCP/IP协议栈及OSI参考模型详解
  • 闭包2
  • 【Kubernetes】K8S 网络隔离 方案
  • 一款实时性能监测工具
  • 张小龙微信小程序演讲内容简介
  • Babel配置的不完全指南
  • Go 语言编译器的 //go: 详解
  • Iterator 和 for...of 循环
  • Java应用性能调优
  • Lucene解析 - 基本概念
  • nfs客户端进程变D,延伸linux的lock
  • windows-nginx-https-本地配置
  • 解析带emoji和链接的聊天系统消息
  • 如何编写一个可升级的智能合约
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 转载:[译] 内容加速黑科技趣谈
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 阿里云服务器如何修改远程端口?
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #Java第九次作业--输入输出流和文件操作
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (一)为什么要选择C++
  • (转)Sublime Text3配置Lua运行环境
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET Standard 的管理策略
  • .NET 使用 XPath 来读写 XML 文件
  • .net6Api后台+uniapp导出Excel
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net中的Queue和Stack
  • [ C++ ] 继承
  • [C++]运行时,如何确保一个对象是只读的
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [Django ]Django 的数据库操作
  • [Docker]十.Docker Swarm讲解
  • [IDF]啥?
  • [JDK工具-2] javap 类文件解析工具-帮助理解class文件,了解Java编译器机制
  • [Leetcode] 寻找数组的中心索引