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. 用agular2做文件上传功能杂记-遁地龙卷风

    (-1)功能描述 写一个功能,前台发起执行请求,后台执行任务,前台可以获取执行的进度,并取得最后的执行状态. (0)angular2 $http文件上传 这里之所以不用angular-file-upl ...

  2. 401 experience

    AM: 块元素与内联元素  : div与span的区别 span只能设置水平的margin(左右内外边距) 在span里面加 display:block; 内联转块(相当于给span加了上下的边距)反 ...

  3. SQL Server - 四种排序, ROW_NUMBER() /RANK() /DENSE_RANK() /ntile() over()

    >>>>英文版 (更简洁易懂)<<<< 转载自:https://dzone.com/articles/difference-between-rownum ...

  4. LabVIEW--好书推荐与分享

    LabVIEW宝典 此书可以作为工具书,配合LabVIEW的范例程序学习可以达到事半功倍的效果. 链接:https://pan.baidu.com/s/17jm6PznLyGW8rVQ_veaGCg ...

  5. MS SQL Server 时间函数

    日期和时间数据类型 数据类型 存储(字节) 日期范围 精确度 格式示例 DateTime 8 1753年1月1日 - 9999年12月31日 3 1/3毫秒 yyyy-MM-dd hh:mm:ss.n ...

  6. javaWeb之使用servlet搭建服务器入门

    servlet: 百度百科说法: Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改 ...

  7. tp框架设置404页面

    无法加载模板跳向404页面 /thinkphp/library/think/Dispatcher.class.php中176行     // 加载模块的扩展配置文件             load_ ...

  8. 你好!酷痞 Coolpy

    欢迎你进入酷痞的物联网世界.这里有着自由的空气和自然的气息.接下来我将告诉你如果一步步建立一个自己专属的物联网平台. 由于目前的酷痞的官方域名还没有通过备案所以现在用临时域名解说本说明. 最终酷痞的官 ...

  9. win10运行LoadRunner Controller遇到的坑

    第一次在win10上运行性能测试,结果 解决方法: 后来在同事的win10电脑上安装lr11后,竟然可以运行成功,哈哈,看到希望了,不用再安装回win7了,发现他的系统版本是win10企业版,而我的是 ...

  10. 基于Python & Opencv 图像-视频-处理算法

    Alg1:图像数据格式之间相互转换.png to .jpg(其他的请举一反三) import cv2 import glob def png2jpg(): images = glob.glob('*. ...