介绍

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 讲解相关推荐

  1. hive 的 left semi join 讲解与left jion的区别

    一:介绍 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join), 而 left semi join 则属于 map ...

  2. 【Hive】left semi join(exists、in)和 left join 区别

    left semi join(exists.in)和 left join 区别 left semi join 基本认识 对比 执行计划 小结 left semi join 基本认识 LEFT SEMI ...

  3. join left semi_HIVE--left semi join

    实验: hive> select * from b1; OK 1       003     20170511 1       004     20170512 1       005     ...

  4. join left semi_Hive的left join、left outer join和left semi join三者的区别

    Hive的Join的文档说明地址: https://cwiki.apache.org/confluence/display/Hive/LanguageManual%2BJoins 以下为两个测试数据表 ...

  5. hive之full outer join(全连接)使用方法

    目录 介绍 语法 例子 创建顾客表:customers 创建订单表:orders ?full outer join语句 ? left join + union + right join语句 介绍 fu ...

  6. Hive中HSQL中left semi join

    Hive中HSQL中left semi join 证明在Hive 2.1.1版本中,是支持where子句中的子查询,SQL常用的exist in子句在Hive中是不支持的,但可以使用一个更高效的实现方 ...

  7. Hive left semi join ,select 和 where中不能出现右表字段/不会生成笛卡尔积

    1 left semi join的时间比in的时间短,比in高效 2 left semi join时select中不能出现右表的字段,不然报错 3  left semi  join 时on中出现左表字 ...

  8. Hive 实现 IN 和 NOT IN 子句 和 LEFT SEMI JOIN 应用

    目前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现. 假设有一个用户浏览商品表skim,和一个用户购买商品表buy.如下 skim表 userId ite ...

  9. Hive中的map join、left semi join和sort merge bucket join

    map join map join是将join双方比较小的表直接分发到各个 map进程的内存中,在map进程中进行join操作,这样就不用进行reduce步骤,从而提高了速度. 如果不指定mapjoi ...

最新文章

  1. Swift Property Wrapper 属性包装器
  2. eplan模板_EPLAN之3D箱柜清单自动生成
  3. Jenkins【环境搭建 01】两种方式+两种环境部署最新版本 Jenkins v2.303.2 WAR包(直接使用 java -jar+使用Tomcat的Web端部署)
  4. PHP只下载不打开文件
  5. 7-42 学术会议地点统计问题-hebust (10 分)
  6. Angular元素属性绑定的一个例子
  7. MessageBox消息框 1126
  8. 巧用yield处理文本
  9. 关于语音识别技术 你了解多少
  10. Python进阶(零)字典、缺省参数、多值参数
  11. 用线程安全随机数解决Random在多线程中随机性重复的问题
  12. 机械类常用英语(一.组装、冲压、喷漆等专业词汇)
  13. cron表达式及在线生成器
  14. 怎么使用svn下载到本地
  15. 基于智能电网的电力线载波通信研究
  16. 阿里云ECS数据迁移到阿里云OSS
  17. 操作系统----进程间通信的方式
  18. 网上千万不要在非官方直营店铺买的商品排行榜
  19. 8.9 五色定理(Heawood 1890)
  20. 腾讯视频的地址解析下载

热门文章

  1. 十个鲜为人知的Linux命令-【3】
  2. java编程的一个猜数字有趣小游戏
  3. 人生感悟,心灵的独白
  4. 硬汉内贾德:让美国人战栗(推荐)
  5. 小程序picker标题_微信小程序实现自定义picker选择器弹窗内容
  6. 《Arduino实验》实验:土壤湿度传感器检测土壤湿度
  7. 在TCP端口筛选只允
  8. 转Draren总结的ollydbg v1.09d 中文版使用说明
  9. 计算机硬件简笔画,电脑的鼠标上色简笔画图片教程步骤
  10. 我们不再是冷暖自知的个体