Hive基础之Hive的复杂类型
ARRAY
一组有序字段,字段的类型必须相同。Array(1,2)
create table hive_array(ip string, uid array<string>)
row format delimited
fields terminated by ','
collection items terminated by '|'
stored as textfile;
加载数据
load data local inpath "/home/spark/software/data/hive_array.txt" overwrite into table hive_array;
hive_array.txt
192.168.1.1,www.baidu.com|www.google.com|www.qq.com
192.168.1.2,www.baidu.com|www.sina.com|www.sohu.com
192.168.1.3,www.qq.com|www.163.com|www.youku.com
select * from hive_array;
192.168.1.1 ["www.baidu.com","www.google.com","www.qq.com"]
192.168.1.2 ["www.baidu.com","www.sina.com","www.sohu.com"]
192.168.1.3 ["www.qq.com","www.163.com","www.youku.com"]
使用下标访问,下标从0开始:
select ip, uid[] as id from hive_array;
192.168.1.1 www.baidu.com
192.168.1.2 www.baidu.com
192.168.1.3 www.qq.com
查看数据长度:
select size(uid) from hive_array;
3
3
3
数组查找:
select * from hive_array where array_contains(uid, "www.baidu.com");
192.168.1.1 ["www.baidu.com","www.google.com","www.qq.com"]
192.168.1.2 ["www.baidu.com","www.sina.com","www.sohu.com"]
MAP
一组无序的键值对,键的类型必须是原子的,值可以是任何类型,同一个映射的键的类型必须相同,值的类型也必须相同。Map('a',1,'b',2)
create table hive_map(ts string, ip string, type string, logtype string, request Map<string,string>, response Map<string, string>)
row format delimited fields terminated by '#'
collection items terminated by '&'
map keys terminated by '='
stored as textfile;
hive_map.txt
2014-03-03 12:22:34#127.0.0.1#get#amap#src=123&code=456&cookie=789#status=success&time=2s
2014-03-03 11:22:34#127.0.0.1#get#autonavi#src=123&code=456#status=success&time=2s&cookie=789
加载数据:
load data local inpath "/home/spark/software/data/hive_map.txt" overwrite into table hive_map;
查看表结构: desc hive_map
ts string None
ip string None
type string None
logtype string None
request map<string,string> None
response map<string,string> None
查看所有字段:
select * from hive_map; 2014-03-03 12:22:34 127.0.0.1 get amap {"src":"123","code":"456","cookie":"789"} {"status":"success","time":"2s"}
2014-03-03 11:22:34 127.0.0.1 get autonavi {"src":"123","code":"456"} {"status":"success","time":"2s","cookie":"789"}
查看map中指定的字段:
select request['src'], request['code'], request['cookie'] from hive_map; 123 456 789
123 456 NULL
STRUCT
一组命名的字段,字段类型可以不同。 Struct('a',1,2,0)
create table hive_struct(ip string, user struct<name:string, age:int>)
row format delimited fields terminated by '#'
collection items terminated by ':'
stored as textfile;
hive_struct.txt
192.168.1.1#zhangsan:40
192.168.1.2#lisi:50
192.168.1.3#wangwu:60
192.168.1.4#zhaoliu:70
加载数据:
load data local inpath "/home/spark/software/data/hive_struct.txt" overwrite into table hive_struct;
查询所有字段:
select * from hive_struct; 192.168.1.1 {"name":"zhangsan","age":40}
192.168.1.2 {"name":"lisi","age":50}
192.168.1.3 {"name":"wangwu","age":60}
192.168.1.4 {"name":"zhaoliu","age":70}
查询指定字段:
select user.name, user.age from hive_struct; zhangsan 40
lisi 50
wangwu 60
zhaoliu 70
Hive基础之Hive的复杂类型的更多相关文章
- Hive基础之Hive数据类型
Hive数据类型 参考:中文博客:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843448.html 英文:https: ...
- Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别
Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端 ...
- Hive基础之Hive环境搭建
Hive默认元数据信息存储在Derby里,Derby内置的关系型数据库.单Session的(只支持单客户端连接,两个客户端连接过去会报错): Hive支持将元数据存储在关系型数据库中,比如:Mysql ...
- Hive基础之Hive的存储类型
Hive常用的存储类型有: 1.TextFile: Hive默认的存储类型:文件大占用空间大,未压缩,查询慢: 2.Sequence File:将属于以<KEY,VALUE>的形式序列化到 ...
- Hive基础之Hive开启查询列名及行转列显示
Hive默认情况下查询结果里面是只显示值: hive> select * from click_log; OK ad_101 :: ad_102 :: ad_103 :: ad_104 :: a ...
- Hive基础之Hive与关系型数据库的比较
Hive与关系型数据库的比较 使用Hive的CTL(命令行接口)时,你会感觉它很像是在操作关系型数据库,但是实际上,Hive和关系型数据库有很大的不同. 1)Hive和关系型数据库 ...
- Hive基础之Hive表常用操作
本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name ...
- Hive基础之Hive是什么以及使用场景
Hive是什么1)Hive由facebook开源,构建在Hadoop (HDFS/MR)上的用于管理和查询结果化/非结构化的数据仓库:2)一种可以存储.查询和分析存储在Hadoop 中的大规模数据的机 ...
- Hive基础(1)
Hive基础(1) Hive的HQL(2) 1. Hive并不是分布式的,它独立于机器之外,类似于Hadoop的客户端. 2. 元数据和数据的区别,前者如表名.列名.字段名等. 3. Hive的三种安 ...
随机推荐
- spark 与 Hadoop 融合后 Neither spark.yarn.jars nor spark.yarn.archive is set
参考文献: http://blog.csdn.net/lxhandlbb/article/details/54410644 每次提交Spark任务到yarn的时候,总会出现uploading reso ...
- IoT 通信协议
/********************************************************************************* * IoT 通信协议 * 说明: ...
- 【linux基础】区块选择VisualBlock
前言 有时候使用linux需要选择某一块区域进行处理,比如对某些列的某些行,类似于Ultraedit的列模式,其实vim中就有相关的功能,此时可以使用vim的区块选择进行处理. 区块选择 1.在一般模 ...
- STM32 外部中断
1)STM32一般有19 个外部中断为: 线 0~15:对应外部 IO 口的输入中断.线 16:连接到 PVD 输出. 线 17:连接到 RTC 闹钟事件. 线 18:连接到 USB 唤醒事件. 2) ...
- OLED的相关信息
有2种方式与OLED模块相连接,一种是8080的并口方式,另一种是4线SPI方式. ALIENTEK OLED 模块的 8080 接口方式需要如下一些信号线:CS: OLED 片选信号.WR:向 OL ...
- CodeForces - 1093D:Beautiful Graph(二分图判定+方案数)
题意:给定无向图,让你给点加权(1,2,3),使得每条边是两端点点权和维奇数. 思路:一个连通块是个二分图,判定二分图可以dfs,并查集,2-sat染色. 这里用的并查集(还可以带权并查集优化一下,或 ...
- OJ链接
BNU..好难找..http://www.bnuoj.com
- LG3812 【模板】线性基
题意 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大. \(1≤n≤50,0≤S_i≤2^{50}\) 分析 模板题. 推荐一篇好博客 现在我来证明一下线性基的性质. 性质 ...
- Codeforces Round #243 (Div. 2)——Sereja and Swaps
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012476429/article/details/24665103 题目链接 题意: 给定一个整数 ...
- 五、概念数据模型(CDM生成LDM,PDM和OOM)
概念数据模型 概念数据模型(Conceptual Data Model,CDM):表达的是数据整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员,应用程序设计人员,维护人员和用 ...