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. Django的Admin站点管理

    一.概述 内容发布:负责添加.修改.删除内容 公告访问 二.配置Admin应用 在settings.py文件中的INSTALLED_APPS中添加'django.contrib.admin',默认是添 ...

  2. bat执行python脚本,执行多条命令

    1.新建一个txt文档,输入以下命令 @echo offcmd /k python F:\Pycharm_Projection\Test\test2.py 2.将txt文档保存为.bat格式,然后双击 ...

  3. 027_git添加多账号设置

    一. 注意事项: (1)公钥文件权限设置问题 现象: Permissions 0644 for '/Users/arunyang/.ssh/id_rsa_ele_me.pub' are too ope ...

  4. java 类加载机制 阿里面试题

    /** * 加载方法不等于执行方法,初始化变量则会赋值 * 类加载顺序应为 加载静态方法-初始化静态变量-执行静态代码块 * 实例化时 先加载非静态方法-实例化非静态变量-执行构造代码块-执行构造函数 ...

  5. ILMerge在MSBuild与ILMerge在批处理文件中运行

    ILMerge ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序.它可以免费使用,并以NuGet包的形式提供. 如果您在使用它时遇到任何问题,请与我们联系.(mbarnett at ...

  6. 微信小程序语音与讯飞语音识别接口(Java),Kronopath/SILKCodec,ffmpeg处理silk,pcm,wav转换

    项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 首先去讯飞开放平台中申请开通语音识别功能 在这里面下载sdk,然后解压,注意appid与sdk是关联的,appid在初始 ...

  7. Accumulation Degree

    #include<cstdio> #include<cstring> #define INF 0x7fffffff using namespace std; ; inline ...

  8. windows无法安装msi文件

    命令提示符(管理员身份运行): 输入:msiexec /i e:\spark\scala-2.11.12.msi 其中e:\spark\scala-2.11.12.msi:就是安装文件的位置.

  9. Shell 编程详解

    部分引用自:https://blog.csdn.net/qq_22075977/article/details/75209149 一.概述 Shell是一种具备特殊功能的程序,它提供了用户与内核进行交 ...

  10. git 入门教程之删除文件

    删除文件 回忆一下文件的常见操作,新增文件,修改文件,删除文件等,新增和修改文件都单独讨论过,现在我们来研究一下如何删除文件. 你可能会说删除文件还不简单啊,直接 rm -rf <file> ...