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. jsonp跨域ajax跨域get方法

    原理: 就是利用<script >标签没有跨域限制的,从而达到与第三方网站通讯的目的.当需要通讯时,本站脚本创建一个<script>标签,src地址指向第三方网站的的一个网址. ...

  2. Ubuntu16.04 Liunx下同时安装Anaconda2与Anaconda3

    先根据Ubuntu预装的python2.7来安装Anaconda2,然后将Anaconda3作为其环境安装在envs文件夹下. 重要提示:有一些软件需要py2.7的环境,比如XX-Net, 最好是先安 ...

  3. remote connect to ubuntu unity

    https://community.nxp.com/thread/220596 putty secure copy protocol can be used to transfer file amon ...

  4. 阿里云OSS 获取目录下所有文件

    public class AliyunHandle { public static string accessKeyId = "a1uI5xxxxxxxxxrP4H"; publi ...

  5. [原创]基于Zynq Linux环境搭建(四)

    此篇编译根文件系统 下载busybox和dropbear, [#73#13:04:52 FPGADeveloper@ubuntu ~/Zybo_Demo/XilinxFS]$wget --no-che ...

  6. Wine中中文显示为错误的解决方案

    First u must download wqy-microhei.ttc font online (https://github.com/anthonyfok/fonts-wqy-microhei ...

  7. 关于hbase api的个人总结(带jar包)

    1.如果本机代码没问题,jar包没问题的话,检查集群也没用问题,但是代码运行显示 找不到对应的映射主机,需要在  C:\Windows\System32\drivers\etc  中修改host文件, ...

  8. Linux history显示时间/用户/ip的设置

    在使用linux服务器的时候发生一些不知道谁操作的问题,google一下说history命令可以查看到历史记录,用过之后发现还是不够详细,再google,原来可以自己设置history的显示. 记录设 ...

  9. Eclipse中如何将项目转成Dynamic Web项目

    项目接手前的同事是使用MyEclipse写的,拿SVN将项目导入eclipse时,web项目就会变成java项目,这时就需要修改配置文件将项目转成web,步骤如下: 1.修改项目配置文件. 要修改的项 ...

  10. (转)urllib库python2和python3具体区别

    转载链接:https://blog.csdn.net/whatday/article/details/54710403 Python 2 name Python 3 name urllib.urlre ...