hive笔记:复杂数据类型-map结构
map 结构
1. 语法:map(k1,v1,k2,v2,…)
操作类型:map ,map类型的数据可以通过'列名['key']的方式访问
案例:
select deductions['Federal Taxes'],deductions['State Taxes'],
deductions['Insurance']
from employees
limit 1;
(1)如果没有查到结果可以使用if判断:
select if(deductions['Federal Taxes'] is null, 0, deductions['Federal Taxes'])
from employees
limit 1;
(2)我们也可以用UDTF把结果变成多行,比如:
select explode(deductions) from employees;
(3)有时候我们需要把name也查询出来:
错误写法:
select name, explode(deductions) from employees;
注意,Explode单独使用只能单个字段,如果要和别的字段一起使用必须使用lateral view explode
正确写法:
select name,dekey,devalue
from employees
LATERAL VIEW explode(deductions) dedView as dekey,devalue;
2. 查询方法
原表数据如下:

(1)map_values(map):取map字段全部value
%jdbc(hive)
select cookie,map_values(mid)
from temp.map_20181101

(2)使用下标访问map
%jdbc(hive)
select cookie,mid['2024']
from temp.map_20181101

(3)size()查看map长度即有多少键值对
%jdbc(hive)
select cookie,size(mid)
from temp.map_20181101

(4)Lateral View语法将值展开为一个新的虚拟表
%jdbc(hive)
SELECT cookie,fixeddim_key,fixeddim_value
FROM temp.map_20181101
LATERAL VIEW explode(mid) myTable1 AS fixeddim_key,fixeddim_value

3. 创建含map数据类型的表和数据插入形式
(1) 建表:
hive> CREATE TABLE t3 (foo STRING, bar MAP<STRING,INT>)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '/t'
> COLLECTION ITEMS TERMINATED BY ','(必须使用)
> MAP KEYS TERMINATED BY ':'
> STORED AS TEXTFILE;
hive笔记:复杂数据类型-map结构的更多相关文章
- hive学习笔记之-数据类型
数据类型 Hive基本的数据类型: Hive集合数据类型: 另外还有一个复合数据类型,可以综合上面的数据类型组合到一起. · union: UNIONTYPE<data_typ ...
- ES6笔记(6)-- Set、Map结构和Iterator迭代器
系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java.C++,连Iterator迭代器.Set集合.Map结构都出来了,不知道说什么好... 一.简单使用 1. iter ...
- js-ES6学习笔记-Set结构和Map结构
http://www.cnblogs.com/lonhon/ 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set ...
- Hive中的数据类型以及案例实操
@ 目录 基本数据类型 集合数据类型 案例实操 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它 ...
- 大数据开发——Hive笔记
写在前面 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.Hive的运行原理- ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
- ECMAScript6之Set结构和Map结构
set数据结构 ES6提供了一个新的数据结构,Set,Set和Array数组相似,但是Set里没有重复的数据,可以说是一个值的集合. 同时,Set数据结构有以下属性和方法: size:返回成员总数 a ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- 论文笔记:CNN经典结构2(WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet)
前言 在论文笔记:CNN经典结构1中主要讲了2012-2015年的一些经典CNN结构.本文主要讲解2016-2017年的一些经典CNN结构. CIFAR和SVHN上,DenseNet-BC优于ResN ...
随机推荐
- PHP的Memcached简单实现
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.也可动态缓存一些实 ...
- Python档案袋(函数与函数装饰器 )
特点:代码复用.可扩展.保持一致性 函数简单的实现,返回值的不同: #定义方法 def funx1(): pass def funx2(): return 0 def funx3(): return ...
- 设置radio选中
选中: $('.viewradio:input[name="istop"][value="' + getSelected().istop + '"]').pro ...
- 开始使用Filebeat
认识Beats Beats是用于单用途数据托运人的平台.它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch. (画外音:通俗地理解,就是采集数据 ...
- redis 系列13 集合对象
一. 集合对象概述 这里的集合是string类型的无序集合,在集合对象中集合成员是唯一的,这就意味着集合中不能出现重复的数据.集合是通过哈希表实现的,集合中最大的成员数为 232-1 (4294967 ...
- 如何判断DataSet里有多少个DataTable
dataset.table.count sda.fill(ds,"table"); //这里是在ds里新建了一个表,叫table,注意是新建,多次执行会报错,实际使用时,可以用co ...
- 技术分享:RxJS实战练习-经典游戏Breakout
效果图 数据流分析 1.ticker$ 数据流 interval配合scheduler/animationFrame 作为游戏随时间变化的控制数据流 ticker$ = interval(this.T ...
- 在C#中使用忽略大小写的string.Contains方法
在C#中比较源字符串是否包含目标字符串,我们可以使用以下方法: source.Contains(target) source.IndexOf(target) >= 0; 相对而言 Contain ...
- 补习系列(6)- springboot 整合 shiro 一指禅
目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...
- 设计模式总结篇系列:代理模式(Proxy)
时代在发展,我们发现,现在不少明星都开始进行微访谈之类的,有越来越多的参与捐赠等.新的一天开始了,首先看下新的一天的日程安排: interface Schedule{ public void weiT ...