hive高级数据类型
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)
hive高级数据类型的更多相关文章
- 大数据技术之_08_Hive学习_04_压缩和存储(Hive高级)+ 企业级调优(Hive优化)
第8章 压缩和存储(Hive高级)8.1 Hadoop源码编译支持Snappy压缩8.1.1 资源准备8.1.2 jar包安装8.1.3 编译源码8.2 Hadoop压缩配置8.2.1 MR支持的压缩 ...
- hadoop之hive集合数据类型
除了string,boolean,date等基本数据类型之外,hive还支持三种高级数据类型: 1.ARRAY ARRAY类型是由一系列相同数据类型的元素组成,这些元素可以通过下标来访问.比如有一个A ...
- 大数据时代的技术hive:hive的数据类型和数据模型
在上篇文章里,我列举了一个简单的hive操作实例,创建了一张表test,并且向这张表加载了数据,这些操作和关系数据库操作类似,我们常把hive和关系数据库进行比较,也正是因为hive很多知识点和关系数 ...
- Oracle11g R2学习系列 之八高级数据类型
所谓的高级数据类型,就是大数据类型,即BCNB(助记词:BC牛逼)+XML数据类型. B:blob,用来存储可变长度的二进制数据. C:clob,主要用来存储可变长度的字符型数据,也就是其他数据库中提 ...
- Hive 5、Hive 的数据类型 和 DDL Data Definition Language)
官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...
- hadoop笔记之Hive的数据类型
Hive的数据类型 Hive的数据类型 前面说过,Hive是一个数据仓库,相当于一个数据库.既然是数据库,那么就必须能创建表,既然有表,那么当中就有列,列中就有对应的类型 总的来讲,hive的数据类型 ...
- Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单
原文:Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单 长长的列表文字类型文件 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 214 ...
- Scala进阶之路-高级数据类型之集合的使用
Scala进阶之路-高级数据类型之集合的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala 的集合有三大类:序列 Seq.集 Set.映射 Map,所有的集合都扩展自 ...
- Scala进阶之路-高级数据类型之数组的使用
Scala进阶之路-高级数据类型之数组的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的初始化方式 1>.长度不可变数组Array 注意:顾名思义,长度不可变数 ...
随机推荐
- python模块 - pywinauto(windows自动化安装软件)
GUI 窗口查询工具 spy++lite pywinauto 模块 原理: https://www.cnblogs.com/testlife007/p/4710599.html pywhinayto ...
- 【原创】Linux基础之curl
http请求过程如下: # curl -v http://www.baidu.com % Total % Received % Xferd Average Speed Time Time Time C ...
- [Linux]权限s权限和t权限
问题 在<Unix高级编程>第4.9章节中描述了函数chmod()的参数mode常量值 当中S_ISUID.S_ISGID.S_ISVTX三个常量让人困惑. 分析 通过查阅文档,发现这几个 ...
- PHP源码安装后设置别名
PHP源码安装后测试是否能正常运行 每次在php目录./bin./php调用php很不方便,可以设置别名(方法一) vi ~/.bash_profile (修改根目录下这个文件) 设置完成后还 ...
- C# .Net 中字典Dictionary<TKey,TValue>泛型类 学习浅谈
一.综述: Dictionary<TKey,TValue>是在 .NET Framework 2.0 版中是新增的.表示键值对的集合,Dictionary<TKey,TValue&g ...
- ScheduledThreadPoolExecutor Usage
refs: https://blog.csdn.net/wenzhi20102321/article/details/78681379 对比一下Timer和ScheduledThreadPoolExe ...
- .net core 2.x - 日志 - to elasticsearch - (2)
你可能会有疑惑,怎么又来一偏,,,其实我也好奇,因为我已经忘记哪个能跑起来了,,,记忆中,这个好像是没问题的. 1.使用到的资源 关于es(elasticseach)在.net中的访问,可以参考es的 ...
- .net core 2.x - 日志 - to elasiticsearch
记录日志到elasticsearch(es),下面简写es,然后我们可以通过kibana可视化的观察日志信息以及统计分析等. 1.起源 年中旬时候,公司有个需求是需要分析用户的地址,需要先分词处理然后 ...
- .net core 设置访问静态资源
- 记 Win10 + Ubuntu18.04 安装
目录 一.准备(一)环境(二)镜像(三)优盘 (四)启动项管理软件EasyBCD(五)启动优盘制作软件(六)分区二.安装 (一)优盘启动(二)安装windows10(三)安装ubuntu18.04(四 ...