09 | Hive Join语句

【大数据入门 | Hive】Join语句 本例中会首先启动一个MapReduce job对表e和表d进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表l进行连接操作。union和union all都是上下拼接sql的结果,这点是和join有区别的,join是左右关联,union和union all是上下拼接。例如:连接三个表,至少需要两个连接条件。(1)根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称。内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。 阅读详情

6.4 Join语句

6.4.1 等值Join

Hive支持通常的sql join语句,但是只支持等值连接,不支持非等值连接。

1)案例实操

(1)根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称。

hive (default)>

select

    e.empno,

    e.ename,

    d.dname

from emp e

join dept d

on e.deptno = d.deptno;

hive sql执行过程:

6.4.2 表的别名

1)好处

(1)使用别名可以简化查询。

(2)区分字段的来源。

2)案例实操

合并员工表和部门表。

hive (default)>

select

    e.*,

    d.*

from emp e

join dept d

on e.deptno = d.deptno;

6.4.3 内连接

内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。

hive (default)>

select

    e.empno,

    e.ename,

    d.deptno

from emp e

join dept d

on e.deptno = d.deptno;

6.4.4 左外连接

左外连接:join操作符左边表中符合where子句的所有记录将会被返回。

hive (default)>

select

    e.empno,

    e.ename,

    d.deptno

from emp e

left join dept d

on e.deptno = d.deptno;

6.4.5 右外连接

右外连接:join操作符右边表中符合where子句的所有记录将会被返回。

hive (default)>

select

    e.empno,

    e.ename,

    d.deptno

from emp e

right join dept d

on e.deptno = d.deptno;

6.4.6 满外连接

满外连接:将会返回所有表中符合where语句条件的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用null值替代。

hive (default)>

select

    e.empno,

    e.ename,

    d.deptno

from emp e

full join dept d

on e.deptno = d.deptno;

6.4.7 多表连接

注意:连接n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。

数据准备,在/opt/module/hive/datas/下:vim location.txt

部门位置id  部门位置

[atguigu@hadoop102 datas]$ vim location.txt

1700   北京

1800   上海

1900   深圳

1)创建位置表

hive (default)>

create table if not exists location(

    loc int,           -- 部门位置id

    loc_name string   -- 部门位置

)

row format delimited fields terminated by '\t';

2)导入数据

hive (default)> load data local inpath '/opt/module/hive/datas/location.txt' into table location;

3)多表连接查询

hive (default)>

select

    e.ename,

    d.dname,

    l.loc_name

from emp e

join dept d

on d.deptno = e.deptno

join location l

on d.loc = l.loc;

大多数情况下,Hive会对每对join连接对象启动一个MapReduce任务。本例中会首先启动一个MapReduce job对表e和表d进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表l进行连接操作。

注意:为什么不是表d和表l先进行连接操作呢?这是因为Hive总是按照从左到右的顺序执行的。

6.4.8 笛卡尔集

1)笛卡尔集会在下面条件下产生

(1)省略连接条件

(2)连接条件无效

(3)所有表中的所有行互相连接

2)案例实操

hive (default)>

select

    empno,

    dname

from emp, dept;

hive sql执行过程:

6.4.9 联合(union & union all)

1)union&union all上下拼接

union和union all都是上下拼接sql的结果,这点是和join有区别的,join是左右关联,union和union all是上下拼接。union去重,union all不去重。

union和union all在上下拼接sql结果时有两个要求:

(1)两个sql的结果,列的个数必须相同

(2)两个sql的结果,上下所对应列的类型必须一致

2)案例实操

将员工表30部门的员工信息和40部门的员工信息,利用union进行拼接显示。

hive (default)>

select

    *

from emp

where deptno=30

union

select

    *

from emp

where deptno=40;

hive -- hive.auto.convert.join优化 对于这参数一定要使用的谨慎一些: 参数详细: 具体实验: hive> show databases; OK default Time taken: 0.993 seconds, Fetched: 3 row(s) hive> create database test; OK Time taken: 1.192 seconds hive> use test; OK Time t... 阅读详情

相关推荐

hive-join中on 和where条件,笛卡尔积join

在多年取数中,第一次遇到需要用笛卡尔积join的场景,记录一下 场景一: 描述:取10月每日近三十天的购物情况,比如,取10月1日的用户在过去30天(含10月1日)的购物情况,源数据tmp1如下 用户id (user_id) 日期 (date) 购物件数(buys) a 2021-09-01 1 a 2021-10-01 3 a 2021-09-...

weixin_53926235的博客 2254

HIVE 非等值连接的解决思路

HIVE 非等值连接的解决思路 hive低版本并不支持非等值连接,在表与表通过join关键字进行连接时, on 后面接的条件需要是区间式的话 比如: SELECT A.COL , B.COL FROM TABLEA A LEFT JOIN TABLEB B ON A.DATE<B.DATE; 这样的连接条件在hivesql中是会报错的. 这里提供一种解决思路 背景: 要统计每个基金每天的基金净值情况, 如果当天没有净值数据的话, 取最近一天存在净值数据的日期的数据作为当天的数据 换句话说只要

weixin_44445168的博客 5295

【无机纳米材料科研制图——OriginLab 0205】Origin对BET吸附/脱附曲线及孔径分布制图...

此篇,我们来分享如何对BET数据进行处理和制图。 一、等温吸脱附曲线绘制 1)找到等温吸脱附文件。 一半来说,对一个样品测一次BET,会产生很多数据,具体因仪器而异。我这里的数据主要有两个文件夹,一个脱附,一个吸附,吸附文件夹中多了一个等温吸脱附的文件夹。而这...

XD_Yangf的博客 803

Hive的不等值连接

hive的join语法仅支持等值连接,不支持非等值的连接 select * from a join b on a.id>b.id; 这种情况是不被允许的,直接报错。 可以采取这种方法: select * from a join b on a.id=b.id; 或者: select * from a,b where a.id>b.id; ...

iilegend的博客 8447

语言 拉丁超立方抽样_医学统计与R语言:间断时间序列分析(Interrupted time series regression)...

微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发Interrupted time series (ITS) analysis is a valuable study design for evaluating the effectiveness of population-level health interventions that have been implemented...

weixin_29300805的博客 3706

【车辆仿真】从0开始建立dSPACE RT Simulink工程:CAN通信(RTICANMM方法)

【工程环境信息】:本文基于链接文章搭建SCALEXIO Rack RTPC总线节点,用于与AutoBox通信硬件:上位机:惠普台式PC(Windows 11专业版)下位机(实时机):AutoBox (DS1006)板卡:DS6342软件:本文所使用的DBC链接提示:以下是本篇文章正文内容,下面案例可供参考!!!的部分一定记得配置,其他的按需配置RTICANMM的灵活度非常高,尽可能参考Help文档,理解相应的配置内容官方有RTICANMM的样例工程,在下方路径。

winnizap的博客 2381

Hive的Join操作

Hive的Join操作

lihuazaizheli的博客 1万+

CAPL实战:从零构建HEX文件解析器,赋能UDS刷写

本文详细介绍了如何使用CAPL从零构建HEX文件解析器,以支持UDS刷写操作。通过解析HEX文件格式、设计状态机、优化数据结构与算法,实现高效准确的固件数据处理,并提供了与UDS刷写流程对接的工程化实践建议。

weixin_28726391的博客 442

【Hive】各种join连接用法

hive join连接的各种用法

hyj 7513

Xilinx平台SRIO介绍(二)SRIO IP核基础知识

使用SRIO IP核必须掌握的基础知识! 理解了这篇,剩下的只是代码罢了。

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 4万+

【Bug已解决】Codex App returns 401 Missing bearer/basic authentication after login on multiple Windows la

原始报错:Codex App returns 401 Missing bearer/basic authentication after login on multiple Windows laptops场景:用户在 Windows 笔记本上登录应用成功了,但随后每个业务请求都返回 401,提示"Missing bearer/basic authentication"。登录态像是"假的"——明明登了,请求却没带任何认证信息。多台 Windows 设备都能复现。

一键难忘的博客 592

Hive Join 的原理与机制

Hive Join 是大数据分析中不可或缺的操作,它允许用户从多个表中获取相关数据。通过理解 Hive Join 的原理、类型和性能优化策略,用户可以有效提高数据查询和分析的效率。Join 类型:包括内连接、外连接、自连接和交叉连接,每种类型适用于不同的场景。性能优化:通过使用 Map Join、选择合适的 Join 顺序、提前过滤、分区和分桶、使用合适的文件格式等手段,可以显著提高 Join 的性能。

My_wife_QBL的博客 1571

Android软键盘系统深度解析:架构、原理与实现

Android软键盘系统深度解析:架构与实现原理 本文系统剖析了Android软键盘的核心工作机制。作为系统级输入服务,软键盘具有双重属性:既是可安装的独立应用,又深度集成于系统框架中。文章详细解读了软键盘的系统架构,包括其与InputMethodManagerService(IMMS)和WindowManagerService(WMS)的交互机制,以及通过InputConnection实现的跨进程通信流程。同时分析了输入法窗口的特殊管理策略、布局调整模式,并深入探讨了输入预测引擎的实现原理,包括词典加载、

保持专注,保持热爱 114

Hive基础二(join原理和机制,join的几种类型,数据倾斜简单处理)

相关链接: Hive基础一(数据库,表,分区表,视图,导入导出数据) Hive基础二(join原理和机制,join的几种类型,数据倾斜简单处理) Hive基础三(查询中常用的语法)一,Hive中join的原理和机制Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。 Hive Common Join 如果不指定Ma

login_sonata的博客 9563

论文深度解析:基于大语言模型的城市公园多维度感知解码与公平性提升

本文针对城市公园感知测量的精细化不足与公平性评估缺口,提出了一套融合社交媒体数据与大语言模型(LLM)的创新分析框架。通过领域适配微调开发的Park-Perception-LLM模型,实现了对感知可达性、可用性、吸引力三大核心维度83%-91%的高精度分类。将该感知指标创新性地融入增强两步浮动集水区法(E2SFCA),以香港高密度城市为案例,系统揭示了公园质量与数量的空间不平等及错配模式。借助多元回归模型,深入挖掘了公园内部特征、宏观建成环境、微观街道景观及时间因素对感知的影响机制。

May the Force be with you 1014

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

深入理解Hive与MySQL中的EXPLAIN及Hive JOIN优化全解析

本文深入探讨了Hive与MySQL中EXPLAIN关键字的差异以及Hive JOIN优化技术。首先对比了MySQL和Hive的EXPLAIN功能,MySQL侧重于索引使用和扫描行数分析,而Hive展示的是分布式计算任务的执行计划。然后详细解析了Hive的三种JOIN类型:Map Join适用于小表JOIN大表,通过将小表加载到内存实现高效查询;SMB Join利用分桶和排序特性优化大表JOIN;Shuffle Join作为默认通用方案。每种JOIN类型都配有配置示例和工作原理说明,帮助开发者根据场景选择最佳

Mengmsm的博客 1278

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

hive查询,连接left join、inner join

1、创建表1.1、直接将一个表里的字段查出来放到新建的表中,字段hive会自动建好。create table temp_table stored as rcfile asselect id, name, age, schoolfrom table1where id=xxx;1.2、将表字段创建好,根据性别和省份分区,(分区字段不用写到字段里)create table temp_table1 (id...

OY_palada 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

019 Hive的join相关查询 group by、sort by、order by distributeBy、clusterBy语句 Hive的union、union all语句

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ _++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ join相关 create table dept( deptno int, dname String, loc String ) row format...

C_time的博客 1049

Hive查询语句,有点细

查询语句的顺序 select (4 开始操作,拿取需要的值 from (1 先到要读取的文件 tb_name where (2 写出判断条件 group by (3 分组 having (对结果进行筛选过滤 order by (6 全局排序 limit (7 limit用于限制返回的行数 基本查询 全表查询 0: jdbc:hive2://linux01:10000> select ...

fqc的博客 2540

Hive中Join的类型和用法

关键字:Hive Join、Hive LEFT|RIGTH|FULL OUTER JOIN、Hive LEFT SEMI JOIN、Hive Cross Join Hive中除了支持和传统数据库中一样的内关联、左关联、右关联、全关联,还支持LEFT SEMI JOIN和CROSS JOIN,但这两种JOIN类型也可以用前面的代替。 注意:Hive中Join的关联键必须在ON ()中指定,不能在...

感谢你的关注~~~~ღ( ´・ᴗ・` ) 373

hive join select demo

1) create table test_partition(id int,desc string) partitioned by (dt string, country string) row format delimited fields terminated by '\t' stored as textfile;

u013777684的专栏 620

【Hive】性能调优 - Map JOIN

map-side JOIN可以省掉reduce过程,从而提高Hive效率;Hive 0.11.0版本后,默认开启自动map-side JOIN优化,我们需要合理调整hive.auto.convert.join.noconditionaltask.size参数值。

qq_40382400的博客 1177

Hive中join的类型与用法

转载自 lxw1234@qq.com的博客 Hive中除了支持和传统数据库中一样的内关联、左关联、右关联、全关联,还支持LEFT SEMI JOIN和CROSS JOIN,但这两种JOIN类型也可以用前面的代替。 注意:Hive中Join的关联键必须在ON ()中指定,不能在Where中指定,否则就会先做笛卡尔积,再过滤。 数据准备 hive> desc lxw1234_a; OK id ...

tinysakura的博客 419

HIVE中join、semi join、outer join举例详解

hive> select * from zz0;  OK  111111  222222  888888  Time taken: 0.147 seconds  hive> select * zz1;  FAILED: Parse Error: line 0:-1 mismatched input '' expecting FROM in  from clause  hive

北漂的蜗牛 4934

hive join的类型和用法

关键字:Hive Join、Hive LEFT|RIGTH|FULL OUTER JOIN、Hive LEFT SEMI JOIN、Hive Cross JoinHive中除了支持和传统数据库中一样的内关联、左关联、右关联、全关联,还支持LEFT SEMI JOIN和CROSS JOIN,但这两种JOIN类型也可以用前面的代替。注意:Hive中Join的关联键必须在ON ()中指定,不能在Wher...

zhuiqiuuuu的博客 956

Hive,mysql 差集运算 left outer join

差集定义:一般地,设A,B是两个集合,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差)。 类似地,对于集合A,B,我们把集合{x/x∈A,且x¢B}叫做A与B的差集,记作A-B记作A-B(或A\B); 即A-B={x|x∈A,且x ¢B}(或A\B={x|x∈A,且x ¢B} B-A={x/x∈B且x¢A} 叫做B与A的差集。 比如说有这么两个表: hive...

小哇 815
上一篇: 08 | Hive基本查询语法
下一篇: 10 | Hive函数
走过冬季
博客等级 码龄9年 1609粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走过冬季

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值