hive 的 left semi join 讲解
介绍
LEFT SEMI JOIN (左半连接)是 IN/EXISTS 子查询的一种更高效的实现。
示例
可以改写为
特点
1、left semi join 的限制是, JOIN 子句中右边的表只能在 ON 子句中设置过滤条件,在 WHERE 子句、SELECT 子句或其他地方过滤都不行。
2、left semi join 是只传递表的 join key 给 map 阶段,因此left semi join 中最后 select 的结果只许出现左表。
3、因为 left semi join 是 in(keySet) 的关系,遇到右表重复记录,左表会跳过,而 join 则会一直遍历。这就导致右表有重复值得情况下 left semi join 只产生一条,join 会产生多条,也会导致 left semi join 的性能更高。
比如以下A表和B表进行 join 或 left semi join,然后 select 出所有字段,结果区别如下:
注意:蓝色叉的那一列实际是不存在left semi join中的,因为最后 select 的结果只许出现左表。
hive 的 left semi join 讲解相关推荐
- hive 的 left semi join 讲解与left jion的区别
一:介绍 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join), 而 left semi join 则属于 map ...
- 【Hive】left semi join(exists、in)和 left join 区别
left semi join(exists.in)和 left join 区别 left semi join 基本认识 对比 执行计划 小结 left semi join 基本认识 LEFT SEMI ...
- join left semi_HIVE--left semi join
实验: hive> select * from b1; OK 1 003 20170511 1 004 20170512 1 005 ...
- join left semi_Hive的left join、left outer join和left semi join三者的区别
Hive的Join的文档说明地址: https://cwiki.apache.org/confluence/display/Hive/LanguageManual%2BJoins 以下为两个测试数据表 ...
- hive之full outer join(全连接)使用方法
目录 介绍 语法 例子 创建顾客表:customers 创建订单表:orders ?full outer join语句 ? left join + union + right join语句 介绍 fu ...
- Hive中HSQL中left semi join
Hive中HSQL中left semi join 证明在Hive 2.1.1版本中,是支持where子句中的子查询,SQL常用的exist in子句在Hive中是不支持的,但可以使用一个更高效的实现方 ...
- Hive left semi join ,select 和 where中不能出现右表字段/不会生成笛卡尔积
1 left semi join的时间比in的时间短,比in高效 2 left semi join时select中不能出现右表的字段,不然报错 3 left semi join 时on中出现左表字 ...
- Hive 实现 IN 和 NOT IN 子句 和 LEFT SEMI JOIN 应用
目前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现. 假设有一个用户浏览商品表skim,和一个用户购买商品表buy.如下 skim表 userId ite ...
- Hive中的map join、left semi join和sort merge bucket join
map join map join是将join双方比较小的表直接分发到各个 map进程的内存中,在map进程中进行join操作,这样就不用进行reduce步骤,从而提高了速度. 如果不指定mapjoi ...
最新文章
- Swift Property Wrapper 属性包装器
- eplan模板_EPLAN之3D箱柜清单自动生成
- Jenkins【环境搭建 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
- PHP只下载不打开文件
- 7-42 学术会议地点统计问题-hebust (10 分)
- Angular元素属性绑定的一个例子
- MessageBox消息框 1126
- 巧用yield处理文本
- 关于语音识别技术 你了解多少
- Python进阶(零)字典、缺省参数、多值参数
- 用线程安全随机数解决Random在多线程中随机性重复的问题
- 机械类常用英语(一.组装、冲压、喷漆等专业词汇)
- cron表达式及在线生成器
- 怎么使用svn下载到本地
- 基于智能电网的电力线载波通信研究
- 阿里云ECS数据迁移到阿里云OSS
- 操作系统----进程间通信的方式
- 网上千万不要在非官方直营店铺买的商品排行榜
- 8.9 五色定理(Heawood 1890)
- 腾讯视频的地址解析下载