hive复合数据类型之map


概述

MAP:MAP包含key->value键值对,可以通过key来访问元素。比如”userlist”是一个map类型,其中username是key,password是value;那么我们可以通过userlist['username']来得到这个用户对应的password;


操作实例

1、创建表


hive> create table map_test(id string,perf map<string,int>)
> row format delimited fields terminated by "\t"
> collection items terminated by ','
> map keys terminated by ':'
> ;

与struct的区别:

create table map_test(id string,perf map<string,int>)
create table student_test(id int,info struct<name:string,age:int>)
------------
再建一张map_test2,测试map字段名不一致会如何
hive> create table map_test2(id string,perf map<string,int>)
> row format delimited fields terminated by "\t"
> collection items terminated by ','
> map keys terminated by ':'
> ;



2、准备文件


---------字段名一致-------

[root@hello110 data]# vi  map_test

1001    job:80,team:123,person:700
1002    job:90,team:234,person:800
1003    job:70,team:345,person:900
1004    job:60,team:456,person:1000
1005    job:59,team:678,person:844
1006    job:98,team:832,person:866


---------字段名不一致------

[root@hello110 data]# vi  map_test2
1001    job_1:80,team:123,person:700
1002    job_2:90,team:234,person:800
1003    job:70,team:345,person:900
1004    job:60,team:456,person:1000
1005    job:59,team:678,person:844
1006    job:98,team:832,person:866


3、文件导入表


load data local inpath "/data/map_test" into table map_test;
load data local inpath "/data/map_test2" into table map_test2;


4、查看表

------map_test表-----

hive> select * from map_test;
OK
1001 {"job":80,"team":123,"person":700}
1002 {"job":90,"team":234,"person":800}
1003 {"job":70,"team":345,"person":900}
1004 {"job":60,"team":456,"person":1000}
1005 {"job":59,"team":678,"person":844}
1006 {"job":98,"team":832,"person":866}
Time taken: 2.264 seconds, Fetched: 6 row(s)
---------用[''] 的方式获取-----------
hive> select perf['job'],perf['team'],perf['person'] from map_test;
OK
80 123 700
90 234 800
70 345 900
60 456 1000
59 678 844
98 832 866
Time taken: 4.377 seconds, Fetched: 6 row(s)
hive> select perf['job'],perf['team'],perf['person123'] from map_test;
OK
80 123 NULL
90 234 NULL
70 345 NULL
60 456 NULL
59 678 NULL
98 832 NULL
Time taken: 4.212 seconds, Fetched: 6 row(s)
hive> select perf from map_test;
OK
{"job":80,"team":123,"person":700}
{"job":90,"team":234,"person":800}
{"job":70,"team":345,"person":900}
{"job":60,"team":456,"person":1000}
{"job":59,"team":678,"person":844}
{"job":98,"team":832,"person":866}
Time taken: 4.118 seconds, Fetched: 6 row(s)
hive>


----------map_test2-------


hive (default)> select * from map_test2;
OK
map_test2.id    map_test2.perf
1001    job_1:80,team:123,person:700    NULL
1002    job_2:90,team:234,person:800    NULL
1003    job:70,team:345,person:900      NULL
1004    job:60,team:456,person:1000     NULL
1005    job:59,team:678,person:844      NULL
1006    job:98,team:832,person:866      NULL
Time taken: 0.086 seconds, Fetched: 6 row(s)

----------------
hive (default)> select perf['job_1'] from map_test2;
OK
c0
NULL
NULL
NULL
NULL
NULL
NULL
Time taken: 0.284 seconds, Fetched: 6 row(s)

-----------------------
hive (default)> select perf['job'] from map_test2;
OK
c0
NULL
NULL
NULL
NULL
NULL
NULL
Time taken: 0.084 seconds, Fetched: 6 row(s)

-------------------------------
hive (default)> select perf['job_2'] from map_test2;
OK
c0
NULL
NULL
NULL
NULL
NULL
NULL
Time taken: 0.074 seconds, Fetched: 6 row(s)

------------------------------
hive (default)> select perf from map_test2;
OK
perf
NULL
NULL
NULL
NULL
NULL
NULL
Time taken: 0.076 seconds, Fetched: 6 row(s)


-----------------原来:如果map字段名不一致,会被当成id字段来处理了---------
hive (default)> select id from map_test2;
OK
id
1001    job_1:80,team:123,person:700
1002    job_2:90,team:234,person:800
1003    job:70,team:345,person:900
1004    job:60,team:456,person:1000
1005    job:59,team:678,person:844
1006    job:98,team:832,person:866
Time taken: 0.064 seconds, Fetched: 6 row(s)


5、hadoop中的文件内容







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Beego框架使用

为什么80%的码农都做不了架构师&#xff1f;>>> Beego Web项目目录结构 new 命令是新建一个 Web 项目&#xff0c;我们在命令行下执行 bee new <项目名> 就可以创建一个新的项目。但是注意该命令必须在 $GOPATH/src 下执行。最后会在 $GOPATH/src 相应目录下…

oracle下lag和lead分析函数

Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。 这种操作可以代替表的自联接&#xff0c;并且LAG和LEAD有更高的效率。 语法&#xff1a; [sql] view plaincopy /*语法*/ lag(exp_str,offset,defval) over() Lead(…

802d简明调试手册_SINUMERIK-828D简明调试手册.pdf

SINUMERIK 828D / 828D BASIC简明调试手册SINUMERIKAnswers for industry. SIEMENSABC01.2012 ASINUMERIK 828D / 828D BASIC V04.04SP01123PLC 45NC 67PLC 891011121314151617PLC 18i1 11.1 11.1.1 NC 31.1.2 31.2

jtessboxeditorfx 界面显示不出来_macOS 使用 XQuartz 支持 X11 实现 Linux 图形化界面显示...

更多奇技淫巧欢迎订阅博客&#xff1a;https://fuckcloudnative.io前言在 Windows 中相信大家已经很熟悉使用 Xmanager(Xshell), MobaXterm, SecureCRT 通过 X11 实现 Linux 图形化界面显示&#xff0c;我的需求是在 macOS 下使用 iTerm2 作为 Terminal 实现 X11 图形化界面显示…

EntityFramework Core 2.0 Explicitly Compiled Query(显式编译查询)

前言 EntityFramework Core 2.0引入了显式编译查询&#xff0c;在查询数据时预先编译好LINQ查询便于在请求数据时能够立即响应。显式编译查询提供了高可用场景&#xff0c;通过使用显式编译的查询可以提高查询性能。EF Core已经使用查询表达式的散列来表示自动编译和缓存查询&a…

Oracle Minus关键字 不包含 取差集

Oracle Minus关键字   SQL中的MINUS关键字   SQL中有一个MINUS关键字&#xff0c;它运用在两个SQL语句上&#xff0c;它先找出第一条SQL语句所产生的结果&#xff0c;然后看这些结果有没有在第二个SQL语句的结果 中。如果有的话&#xff0c;那这一笔记录就被去除&#xff0…

python扫描器甄别操作系统类型_20189317 《网络攻防技术》 第三周作业

一.教材内容总结1.网络踩点&#xff1a;web搜索与挖掘、DNS和IP查询、网络拓扑侦察(1)网络踩点目标确定(2)技术手段&#xff1a;web信息搜索与挖掘、DNS和IP查询、网络拓扑侦察(3)web信息搜索与挖掘&#xff1a;基本搜索与挖掘技巧、高级搜索与挖掘技巧、编程实现google搜索、元…

python 网页重定向_小试牛刀:python爬虫爬取springer开放电子书.

首先声明,本文旨在记录反思,并没有资源,代码也不具有借鉴意义(水平实在不行.某天,水群的时候发现群友发了一个文件,里面是疫情时期springer开放的免费电子书名单,同时还附有下载链接,总共有400多本,这要是一个一个下载不得累死个人,只下载自己感兴趣的书也是一个好主意,但是,我…

直面桌面云带来的现状优势

在桌面云解决方案里&#xff0c;首先&#xff0c;所有的数据以及运算都在服务器端进行&#xff0c;客户端只是显示其变化的影像而已&#xff0c;所以在不需要担心客户端来非法窃取资料&#xff0c;我们在电影里面看到的商业间谍拿着 U 盘疯狂的拷贝公司商业机密的情况再也不会出…

ORA-28001: the password has expired解决方法

Oracle提示错误消息ORA-28001: the password has expired&#xff0c;是由于Oracle11G的新特性所致&#xff0c; Oracle11G创建用户时缺省密码过期限制是180天&#xff08;即6个月&#xff09;&#xff0c; 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数…

.net 导出excel_Qt编写的项目作品18-数据导出到Excel及Pdf和打印数据

一、功能特点原创导出数据机制&#xff0c;不依赖任何office组件或者操作系统等第三方库&#xff0c;尤其是支持嵌入式linux。10万行数据9个字段只需要2秒钟完成。只需要四个步骤即可开始急速导出大量数据到Excel。同时提供直接写入数据接口和多线程写入数据接口&#xff0c;不…

hive数据库定义

默认数据库"default" 可以显式切换数据库&#xff1a;hive> use 数据库名; 创建 hive>CREATE DATABASE [IF NOT EXISTS] mydb [LOCATION] /....... [COMMENT] ....; 实例 hive (default)> create database test_db comment test database; OK Ti…

图像增强_Keras 常用的图像增强方式

欢迎关注 “小白玩转Python”&#xff0c;发现更多 “有趣”在使用神经网络和深度学习模型时&#xff0c;需要进行数据准备。对于更复杂的物体识别任务&#xff0c;也越来越需要增加数据量。数据增加意味着增加数据量。换句话说&#xff0c;拥有更大的数据集意味着更健壮的模型…

Facebook产品经理的三年叙事与协作思考

产品经理和研发工程师的关系经常被大家调侃&#xff0c;可偏偏就有同时受到研发和设计都喜欢的“别人家的产品经理”&#xff0c;沟通协调、对接需求、项目把控面面俱到还有好人缘。有没有人天生就是产品经理&#xff1f;产品经理的工作就是写需求写需求和写需求么&#xff1f;…

sis新地址_坚若磐石不掉速,老平台升级新选择,入手昱联Asint 500G SSD

我是文章的原作者&#xff0c;文章首发于&#xff1a;什么值得买爱折腾的老狐狸​zhiyou.smzdm.com首发文章链接&#xff1a;坚若磐石不掉速&#xff0c;老平台升级新选择&#xff0c;入手昱联Asint 500G SSD _值客原创_什么值得买​post.smzdm.com虽然说&#xff0c;现在越来越…

hive表定义(3种方式)

创建表 方式一 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ..…

进度条设置_为你的练习设置进度条

在我们的日常练习中&#xff0c;遇到最多的一个问题就是不知道自己练得怎么样了&#xff1f;还需不需要继续&#xff0c;或者调整练习方法。这种问题大多出现在自学吉他的学生当中&#xff0c;因为得不到老师的反馈&#xff0c;自己练得对不对&#xff0c;够不够&#xff0c;都…

Python之路(第二篇):Python基本数据类型字符串(一)

一、基础1、编码 UTF-8:中文占3个字节 GBK&#xff1a;中文占2个字节 Unicode、UTF-8、GBK三者关系 ascii码是只能表示英文字符&#xff0c;用8个字节表示英文&#xff0c;unicode是统一码&#xff0c;世界通用码&#xff0c;规定采用2个字节对世界各地不同文字进行编码&#x…

python ftp下载文件_文件上传下载Python

点击上方蓝字关注我&#xff01;图片来源 pexels.com简单实现文件上传、下载1 Server端 # -*- coding: utf-8 -*-import jsonimport os__author__ sange# Time : 2020/8/17 下午5:26# Author : sange# File : tcpserver_socket.py# Software: PyCharmimport socketserv…

hive列定义

修改 列的名称、类型、位置、注释 hive>ALTER TABLE t3 CHANGE COLUMN old_name new_name String [COMMENT ...] [AFTER column2]; 实例 hive (zmgdb)> alter table t1 change column car sarly int after office; FAILED: Execution Error, return code 1 from org.a…