hive的高级数据类型主要包括:数组类型、map类型、结构体类型、集合类型,以下将分别详细介绍。

1)数组类型
array_type:array<data_type>

-- 建表语句

create table test.array_table(
name   string,
age    int,
addr   array<string>
)
row format delimited fields terminated by ','
collection items terminated by ':'
;

hive> desc test.array_table;
OK
name                    string                                     
age                     int                                        
addr                    array<string>

-- 测试数据

chavin,28,beijing:shanghai:shenyang
nope,28,beijing:shanghai:taiyuan
wzq,28,beijing:dalian:shenyang:fuxin
zhangshuai,28,beijing:shenyang:fuxin

-- 加载数据

hive> load data local inpath '/home/hadoop/array_table.txt' into table test.array_table;
Loading data to table test.array_table
OK
Time taken: 0.918 seconds

-- 查询

hive> select * from test.array_table;
OK
chavin    28    ["beijing","shanghai","shenyang"]
nope    28    ["beijing","shanghai","taiyuan"]
wzq    28    ["beijing","dalian","shenyang","fuxin"]
zhangshuai    28    ["beijing","shenyang","fuxin"]
Time taken: 0.199 seconds, Fetched: 4 row(s)

hive> select addr[1] from test.array_table;
OK
shanghai
shanghai
dalian
shenyang
Time taken: 0.186 seconds, Fetched: 4 row(s)

hive> select addr[0] from test.array_table;
OK
beijing
beijing
beijing
beijing
Time taken: 0.212 seconds, Fetched: 4 row(s)

2)map类型
map_type:map<primary_type,data_type>

-- 建表语句

create table test.map_table(
name      string,
detail    map<string,string>
)
row format delimited fields terminated by '\t'
collection items terminated by ','
map keys terminated by ':'
;

hive> desc test.map_table;
OK
name                    string                                     
detail                  map<string,string>                         
Time taken: 0.146 seconds, Fetched: 2 row(s)

-- 测试数据

chavin    age:28,addr:beijing,phone:15998888888,email:811651208@qq.com
nope    age:28,addr:beijing,phone:13899998888,email:nope@gmail.com
wzq    age:28,addr:shanghai,phone:13899998888,email:wzq@gmail.com
zhangshuai    age:28,addr:tianjing,phone:13899998888,email:zs@gmail.com

-- 加载数据

hive> load data local inpath '/home/hadoop/map.txt' into table test.map_table;
Loading data to table test.map_table
OK
Time taken: 0.641 seconds

-- 查询数据

hive> select * from test.map_table;
OK
chavin    {"age":"28","addr":"beijing","phone":"15998888888","email":"811651208@qq.com"}
nope    {"age":"28","addr":"beijing","phone":"13899998888","email":"nope@gmail.com"}
wzq    {"age":"28","addr":"shanghai","phone":"13899998888","email":"wzq@gmail.com"}
zhangshuai    {"age":"28","addr":"tianjing","phone":"13899998888","email":"zs@gmail.com"}
Time taken: 0.183 seconds, Fetched: 4 row(s)

hive> select detail from test.map_table;
OK
{"age":"28","addr":"beijing","phone":"15998888888","email":"811651208@qq.com"}
{"age":"28","addr":"beijing","phone":"13899998888","email":"nope@gmail.com"}
{"age":"28","addr":"shanghai","phone":"13899998888","email":"wzq@gmail.com"}
{"age":"28","addr":"tianjing","phone":"13899998888","email":"zs@gmail.com"}
Time taken: 0.177 seconds, Fetched: 4 row(s)

hive> select name,detail['email'] from test.map_table;
OK
chavin    811651208@qq.com
nope    nope@gmail.com
wzq    wzq@gmail.com
zhangshuai    zs@gmail.com
Time taken: 0.179 seconds, Fetched: 4 row(s)

3)结构体类型
struct_type:struct<col_name:data_type,... ...>

-- 建表语句

create table test.struct_table(
name      string,
detail    struct<age:int,phone:string,email:string>
)
row format delimited fields terminated by '\t'
collection items terminated by ','
;

hive> desc test.struct_table;
OK
name                    string                                     
detail                  struct<age:int,phone:string,email:string>                       
Time taken: 0.139 seconds, Fetched: 2 row(s)

-- 测试数据

chavin    28,15998888888,811651208@qq.com
nope    28,13899998888,nope@gmail.com
wzq    28,13899998888,wzq@gmail.com
zhangshuai    28,13899998888,zs@gmail.com

-- 加载数据

hive> load data local inpath '/home/hadoop/struct.txt' into table test.struct_table;
Loading data to table test.struct_table
OK
Time taken: 0.564 seconds

-- 查询数据

hive> select * from test.struct_table;
OK
chavin    {"age":28,"phone":"15998888888","email":"811651208@qq.com"}
nope    {"age":28,"phone":"13899998888","email":"nope@gmail.com"}
wzq    {"age":28,"phone":"13899998888","email":"wzq@gmail.com"}
zhangshuai    {"age":28,"phone":"13899998888","email":"zs@gmail.com"}
Time taken: 0.183 seconds, Fetched: 4 row(s)

hive> select name,detail.email from test.struct_table;
OK
chavin    811651208@qq.com
nope    nope@gmail.com
wzq    wzq@gmail.com
zhangshuai    zs@gmail.com
Time taken: 0.869 seconds, Fetched: 4 row(s)

4)集合类型
union_type:uniontype<data_type,data_type,... ...>

-- 建表语句

create table test.union_table(
detail    uniontype<int,string>
)
row format delimited fields terminated by '\t'
collection items terminated by ','
;

hive> desc test.union_table;
OK                                    
detail                  uniontype<int,string>                       
Time taken: 0.141 seconds, Fetched: 2 row(s)

转载于:https://www.cnblogs.com/wcwen1990/p/9771728.html

hive高级数据类型相关推荐

  1. Hive 高级篇(调优)

    Hive 高级篇 1. Hive 数据存储格式(数据压缩) 1.1 Hive 数据压缩 1.2 Hive 开启数据压缩 1.3 数据存储格式--行式存储 1.4 数据存储格式--列式存储 1.5 存储 ...

  2. C 语言编程 — 高级数据类型 — void 类型

    目录 文章目录 目录 前文列表 void 类型 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本数据类型> & ...

  3. C 语言编程 — 高级数据类型 — 字符串

    目录 文章目录 目录 前文列表 字符串 字符串拷贝 字符串比较 strcmp strncmp 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> &l ...

  4. C 语言编程 — 高级数据类型 — 共用体

    目录 文章目录 目录 前文列表 共用体 定义共用体 访问共用体成员 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C 语言编程 - 基本 ...

  5. C 语言编程 — 高级数据类型 — 结构体与位域

    目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 结构体的内存分布 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 ...

  6. C 语言编程 — 高级数据类型 — 枚举

    目录 文章目录 目录 前文列表 声明枚举类型 定义枚举类型的变量 枚举类型变量的枚举值 枚举在 switch 语句中的使用 将整型转换为枚举类型 前文列表 <程序编译流程与 GCC 编译器> ...

  7. C 语言编程 — 高级数据类型 — 数组

    目录 文章目录 目录 前文列表 数组 声明数组 初始化数据 访问数组元素 二维数组 指向数组的指针 将数组指针作为实参传入函数 从函数返回一个数组指针 指针数组 数组名和取数组首地址的区别 前文列表 ...

  8. Hive学习笔记 —— Hive的数据类型

    Hive本质上是一个数据库,可以创建表,表有列组成,而列支持的主要类型有:基本数据类型.复杂数据类型.时间数据类型. 1. Hive的数据类型之基本数据类型 tinyint/smallint/int/ ...

  9. Python入门篇-高级数据类型集合(set)和字典(dict)

    Python入门篇-高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.集合(set) 1>.集合的特点 约定set 翻译为集合c ...

最新文章

  1. 置顶带滚动效果_高端大气的滚动条图表,你学会了还怕老板们不喜欢,不升职吗?...
  2. Linux.Netstat
  3. erc20 php,使用php将erc20令牌从一个帐户传输到另一个帐户
  4. IDEA——使用JSONObject时报错
  5. ArrayList、HashTable、List、Dictionary的演化及如何选择使用
  6. centos7.3 docker安装grafana
  7. 项目总结:华南师范大学校园开发教育android客户端总结
  8. Android开发笔记(三十三)文本文件和图片文件的读写
  9. Dart的日期时间操作
  10. 为什么女性创业举步维艰?
  11. Android 软键盘弹出时把原来布局顶上去的解决方法
  12. C++ std::condition_variable wait() wait_for() 区别 怎么用 实例
  13. Oracle 常见错误代码处理 1
  14. 用打印服务器打印打印机显示脱机,菜鸟也专业 打印机脱机故障处理方法
  15. 2012第二届GIS制图大赛——赛前培训资料(上篇)
  16. 深入C++库分析sync_with_stdio实现
  17. CSS ::backdrop
  18. 通过思科模拟器配置思科2960交换机的办法:
  19. 平衡电枢磁性扬声器行业调研报告 - 市场现状分析与发展前景预测
  20. 服务器硬盘热插拔检测不到,用过这么多年才知道, 原来有的设备是真的不能热插拔的!...

热门文章

  1. 面向切面编程:操作日志
  2. TrueNAS SCALE是什么
  3. 我想问一下男生,一个女生那么真诚热情又卑微的喜欢你,你们是怎么做到视而不见的呢?
  4. 钱花了才是自己的你们觉得这句话对吗?
  5. 门槛,才是做生意持久盈利的基础
  6. 社区团购如今进行得如火如荼
  7. 做实体行业现在难吗?
  8. 如何看待小米10的葫芦屏?
  9. IP数据报格式,IP分片,IP编址,子网掩码
  10. 最短Hamilton路径