2023.11.14 hivesql的容器,数组与映射
目录
https://blog.csdn.net/m0_49956154/article/details/134365327?spm=1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm=1001.2014.3001.5501
8.hive的复杂类型
9.array类型: 又叫数组类型,存储同类型的单数据的集合
10.struct类型: 又叫结构类型,可以存储不同类型单数据的集合
11.map类型: 又叫映射类型,存储键值对数据的映射(根据key找value)
把之前的内容单独拿出来
https://blog.csdn.net/m0_49956154/article/details/134365327?spm=1001.2014.3001.5501
https://blog.csdn.net/m0_49956154/article/details/134365327?spm=1001.2014.3001.5501
8.hive的复杂类型
---------------------------复杂类型建表格式------------------------ -- 复杂类型建表格式:[row format delimited] # hive的serde机制[fields terminated by '字段分隔符'] # 自定义字段分隔符固定格式[collection ITEMS terminated by '集合分隔符'] # 自定义array同类型集合和struct不同类型集合[map KEYS terminated by '键值对分隔符'] # 自定义map映射kv类型[lines terminated by '\n'] # # 默认即可hive复杂类型: array struct map
9.array类型: 又叫数组类型,存储同类型的单数据的集合
-- array类型: 又叫数组类型,存储同类型的单数据的集合 -- 建表指定类型: array<数据类型> -- 取值: 字段名[索引] 注意: 索引从0开始 -- 获取长度: size(字段名) -- 判断是否包含某个数据: array_contains(字段名,某数据)
需求: 已知data_for_array_type.txt文件,存储了学生以及居住过的城市信息,要求建hive表把对应的数据存储起
1.创建表
[collection ITEMS terminated by '集合分隔符'] # 自定义array同类型集合和struct不同类型集合
----建表,
create table test_array_1(name string,location array<string>
)row format delimited
fields terminated by '\t'
collection items terminated by ',';
2.加载数据
-
load data inpath '/itcast/data_for_array_type.txt' into table test_array_1;
3.验证数据
4.需求:查询张三是否在天津住过?
-
select array_contains(location,'tianjin')from test_array_1 where name = 'zhangsan';
-
--结果:true
5. 需求:查询张三的地址有几个?
-
select size(location)from test_array_1 where name = 'zhangsan';
-
--结果:4
6.需求:查询王五的第二个地址?
-
select location[1] from test_array_1 where name = 'wangwu';
-
--结果:chengdu
10.struct类型: 又叫结构类型,可以存储不同类型单数据的集合
-- 建表指定类型: struct<子字段名1:数据类型1, 子字段名2:数据类型2 , ...> -- 取值: 字段名.子字段名n
[collection ITEMS terminated by '集合分隔符'] # 自定义array同类型集合和struct不同类型集合
1.建表
-- 建表
create table test_struct_1(id int,name_info struct<name:string,age:int>
)row format delimited fields terminated by '#'
collection items terminated by ':';
2.加载数据
load data inpath '/itcast/data_for_struct_type.txt' into table test_struct_1;
3.验证数据
select * from test_struct_1;
需求1:查询所有用户姓名
select name_info.name from test_struct_1;
需求2:查询所有的用户年龄
select name_info.age from test_struct_1;
需求3:查询所有用户的平均年龄
11.map类型: 又叫映射类型,存储键值对数据的映射(根据key找value)
-- 建表指定类型: map<key类型,value类型> -- 取值: 字段名[key] -- 获取长度: size(字段名) -- 获取所有key: map_keys() -- 获取所有value: map_values()
1.创建表
--创建表
create table test_map_1(id int,name string,members map<string,string>,age int
)row format delimited
fields terminated by ','
collection items terminated by '#'
map keys terminated by ':';
2.加载数据
load data inpath '/itcast/data_for_map_type.txt'into table test_map_1;
3.验证数据
--验证数据
select * from test_map_1;
-- 1,林杰均,"{""father"":""林大明"",""mother"":""小甜甜"",""brother"":""小甜""}",28
-- 2,周杰伦,"{""father"":""马小云"",""mother"":""黄大奕"",""brother"":""小天""}",22
-- 3,王葱,"{""father"":""王林"",""mother"":""如花"",""sister"":""潇潇""}",29
-- 4,马大云,"{""father"":""周街轮"",""mother"":""美美""}",26
需求1:查询每个学生的家庭成员关系(就是所有的key)
select name,map_keys(members) from test_map_1;
需求2:查询每个学生的家庭成员姓名(就是所有的value)
select name ,map_values(members) from test_map_1;
需求3:查询每个学生和对应的父亲名字
select name,members['father'] as father from test_map_1;
需求4:查询马大云是否有兄弟
select name,array_contains(map_keys(members),'brother') from test_map_1 where name ='马大云';
-- 需求5:查询每个学生的对应brother姓名,没有brother的学生null补全-- 需求6:查询每个学生的对应brother姓名,没有brother的学生直接不显示
相关文章:

2023.11.14 hivesql的容器,数组与映射
目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…...
Android Glide照片宫格RecyclerView,点击SharedElement共享元素动画查看大图,Kotlin(1)
Android Glide照片宫格RecyclerView,点击SharedElement共享元素动画查看大图,Kotlin(1) <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"an…...
SELinux零知识学习八、SELinux策略语言之客体类别和许可(2)
接前一篇文章:SELinux零知识学习七、SELinux策略语言之客体类别和许可(1) 一、SELinux策略语言之客体类别和许可 2. 在SELinux策略中定义客体类别 SELinux策略中必须包括所有SELinux内核支持的客体类别和许可的声明,以及其它客体…...
deepstream-测试发送AMQP
1. 安装库 * glib 2.0 ---------- sudo apt-get install libglib2.0 libglib2.0-dev Install rabbitmq-c library -------------------------- sudo apt-get install librabbitmq-dev If you plan to have AMQP broker installed on your local machine ------------------…...

LLMs可以遵循简单的规则吗?
由于大型语言模型在现实世界中的责任越来越大,因此如何以可靠的方式指定和约束这些系统的行为很重要。一些开发人员希望为模型设置显式规则,例如“不生成滥用内容”,但这种方式可能会被特殊技术规避。评估LLM在面对对抗性输入时遵循开发人员提…...

如何挑选护眼灯?光照均匀度、色温、眩光这3点!
光照环境对我们的生活质量影响深远,尤其在孩子的成长过程中,良好的光照环境对其学习效率、视力保护都至关重要。光照中的很多因素都对视力有着或大或小的影响,本文将从光照均匀度、眩光、色温三个关键点,深入浅出地让消费者了解其…...

python 实验7
姓名:轨迹 学号:6666 专业年级:2021级软件工程 班级: 66 实验的准备阶段 (指导教师填写) 课程名称 Python开发与应用 实验名称 文件异常应用 实验目的 (1)掌握基本文件读写的方式; …...

日历应用程序 BusyCal mac中文版软件特点
BusyCal mac是一款日历应用程序,它可以帮助用户轻松地管理日程安排、事件提醒、会议安排等。BusyCal 支持 macOS 和 iOS 平台,并且可以与 iCloud、Google 日历、Exchange 等多种日历服务进行同步。 BusyCal mac软件特点 强大的日历功能:Busy…...
软件测试/测试开发丨接口自动化测试,接口鉴权的多种方式
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/28000 一、后端接口鉴权常用方法 cookie 携带身份信息请求认证之后的每次请求都携带cookie信息,cookie记录在请求头中 token 携带身份信息请求…...
08 robotframework 修改乱码问题
修改[Python目录]\Lib\site-packages\robotide\lib\robot\utils中的encodingsniffer.py if UNIXY: DEFAULT_SYSTEM_ENCODING UTF-8 DEFAULT_OUTPUT_ENCODING UTF-8 else: DEFAULT_SYSTEM_ENCODING cp1252 DEFAULT_OUTPUT_ENCODING cp437 将DEFAUL…...

门店如何设置多个联系电话和营业时间
小程序中门店信息是非常重要的,通常需要有门店地址、门店电话和营业时间等。采云小程序支持设置多个门店联系电话,避免客户无法联系到门店。而且,也支持设置多个营业时间时段。例如周一到周五早08:00 - 18:00 。客户在周末下单的时候&#…...
第5章 字典和结构化数据
目录 1. 字典数据类型1.1 添加键值对1.2 删除键值对1.3 keys() 方法1.4 values() 方法1.5 items() 方法1.6 检查字典总是否存在键或值1.7 get() 方法1.8 setdefault() 方法 2. 嵌套2.1 在列表中存储字典2.2 在字典中存储列表2.3 在字典中存储字典 1. 字典数据类型 键值对无序 …...
2023年咸阳市《网络建设与运维》赛题
2023年咸阳市职业院校技能大赛 网络建设与运维赛项 赛卷 023年11月 竞赛说明 一、竞赛项目简介 “网络建设与运维”竞赛共分为模块一:网络理论测试;模块二:网络建设与调试;模块三:服务搭建与运维等三个模块。 二、竞赛注意事项 1.禁止携带和使用移动存储设备、计算...

Spring Cloud Netflix微服务组件-Eureka
目录 CAP理论 注册中心对比 为什么注册中心更适合用AP? 分布式系统AP和CP如何取舍? Eureka核心功能点 Euraka server启动的主线流程 总体流程图 EnableEurekaServer 流程图 EurekaServerAutoConfiguration EurekaServerInitializerConfigurat…...

FreeRTOS_任务创建与删除
1. 函数TaskCreate() 2. 函数xTaskDelete() xTaskDelete(NULL) //参数为NULL,为删除当前任务 3.其它相关任务API函数...
什么是Vue的前端微服务架构(Micro Frontends)?
前端微服务架构(Micro Frontends)是一种借鉴了后端微服务架构思想的新型前端架构风格。它将前端应用程序拆分为多个小型、独立的部分,每个部分都可以独立部署、独立开发和独立运行。这种架构的出现是为了解决庞大的一整块后端服务带来的变更与…...

什么是原生IP与广播IP?原生IP有何优势?
在代理IP中,我们常常听到原生IP与广播IP,二者有何区别?如何区分呢?下面为大家详细讲解。 一、什么是原生ip 原生IP地址是互联网服务提供商(ISP)直接分配给用户的真实IP地址,无需代理或转发。此…...
vnodeToString函数把vnode转为string(innerhtml)
函数 function vnodeToString(vnode) {// 如果是文本节点,直接返回文本内容if ([string, boolean, undefined, null, number].includes(typeof vnode)) {return vnode;}// 转换节点的属性为字符串形式const attrs Object.keys(vnode.attrs || {}).map((key) > …...
【Halcon】C# HTuple多参数设置小技巧
比如,在halcon中我们经常这么写: dev_disp_text (hello, window, 100, 200, red, [box,shadow],[true,false])[‘box’,‘shadow’] 和 [‘true’,‘false’] 成对出现。 可以同时对多个参数设置。 如果用halcon翻译C#,你会得到:…...

此芯科技加入绿色计算产业联盟,参编绿色计算产业发展白皮书
近日,此芯科技正式加入绿色计算产业联盟(Green Computing Consortium,简称GCC),以Arm架构通用智能CPU芯片及高能效的Arm PC计算解决方案加速构建软硬协同的绿色计算生态体系,推动绿色计算产业加速发展。 继…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...