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高级数据类型的更多相关文章

  1. 大数据技术之_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支持的压缩 ...

  2. hadoop之hive集合数据类型

    除了string,boolean,date等基本数据类型之外,hive还支持三种高级数据类型: 1.ARRAY ARRAY类型是由一系列相同数据类型的元素组成,这些元素可以通过下标来访问.比如有一个A ...

  3. 大数据时代的技术hive:hive的数据类型和数据模型

    在上篇文章里,我列举了一个简单的hive操作实例,创建了一张表test,并且向这张表加载了数据,这些操作和关系数据库操作类似,我们常把hive和关系数据库进行比较,也正是因为hive很多知识点和关系数 ...

  4. Oracle11g R2学习系列 之八高级数据类型

    所谓的高级数据类型,就是大数据类型,即BCNB(助记词:BC牛逼)+XML数据类型. B:blob,用来存储可变长度的二进制数据. C:clob,主要用来存储可变长度的字符型数据,也就是其他数据库中提 ...

  5. Hive 5、Hive 的数据类型 和 DDL Data Definition Language)

    官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...

  6. hadoop笔记之Hive的数据类型

    Hive的数据类型 Hive的数据类型 前面说过,Hive是一个数据仓库,相当于一个数据库.既然是数据库,那么就必须能创建表,既然有表,那么当中就有列,列中就有对应的类型 总的来讲,hive的数据类型 ...

  7. Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单

    原文:Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单 长长的列表文字类型文件 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 214 ...

  8. Scala进阶之路-高级数据类型之集合的使用

    Scala进阶之路-高级数据类型之集合的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala 的集合有三大类:序列 Seq.集 Set.映射 Map,所有的集合都扩展自 ...

  9. Scala进阶之路-高级数据类型之数组的使用

    Scala进阶之路-高级数据类型之数组的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的初始化方式 1>.长度不可变数组Array 注意:顾名思义,长度不可变数 ...

随机推荐

  1. java和数据库中日期类型的常见用法

    (1)java中日期类型:Date.Timestamp(2)数据库中:Date.Timestamp(3)字符串和Date之间的格式化转换:    SimpleDateFormat类方法: format ...

  2. docker创建Redis集群

    开始工作: yum install wegt ##安装下载工具 yum install net-tools ##安装网络工具 yum install tree ##安装tree命令(方便查看集群配置文 ...

  3. GitHub界面初识

      现在很多 HR 在招聘程序员的需求都会提到「有 Github 项目者优先」,大部分求职者也会在简历中附上 Github 链接. 作为一个专业的 HR,即便不懂代码,也不能被一个链接唬住.今天我就手 ...

  4. ubuntu 32/64 bit

    https://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit how to run 32-bit app ...

  5. linux安装selenium+chrome+phantomjs

    1. 安装 selenium pip3 install selenium pip3 安装参考 2. 安装 ChromeDriver yum install chromedriver.x86_64 3. ...

  6. 图文详解互联网根基之HTTP

    这是本人对<图解HTTP>和<HTTP权威指南>阅读后总结的大家常用的.重要的知识点,前端.后端同学居家必备! 一.概述 HTTP是Hyper Text Transfer Pr ...

  7. 十三python基础之socket编程

      阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现 ...

  8. php 的文件操作类

    <?php header('Content-type:text/html;charset=utf8'); Class FILE { private static $path; private s ...

  9. 常用Mysql或者PostGresql或者Greenplum的语句总结。

    1.使用mysql的union all可以同时查询出所有自己想要查询数据表的数据量. select 'user' as tablename, count(*) from user union all ...

  10. 编码 ASCII, GBK, Unicode+utf-8

    0. 1.参考 网页编码就是那点事 阮一峰 字符编码笔记:ASCII,Unicode 和 UTF-8 2.总结 美国 ASCII 码 发音: /ˈæski/ :128个字符,只占用了一个字节的后面7位 ...