spark left join 和 right join 的坑
前言
本文隶属于专栏《Spark异常问题汇总》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见 Spark异常问题汇总
问题描述
在开发 Spark SQL 的时候,遇到了一个问题
一个小表 3G 左右, 然后需要 left join 两个大表,一个150G 左右,一个 80G 左右。
- 发现没办法 left join 的时候广播左表;
- 尝试使用 right join ,广播右表,发现物理执行计划没生效。
问题定位
Spark SQL 在进行数据关联的时候,不能广播基表
。
也就是left join 只能广播右表,right join 只能广播左表。
问题解决
先利用广播做 inner join,生成两个小表; 然后在用原始小表 left join 这两个新生成的小表,完成最终结果数据产出。
任务从接近2小时,降低到了1 min 左右。
spark left join 和 right join 的坑相关推荐
- Spark SQL中出现 CROSS JOIN 问题解决
Spark SQL中出现 CROSS JOIN 问题解决 参考文章: (1)Spark SQL中出现 CROSS JOIN 问题解决 (2)https://www.cnblogs.com/yjd_hy ...
- spark和HSQL的连接join方式
本文主要介绍spark join相关操作. 讲述spark连接相关的三个方法join,left-outer-join,right-outer-join,在这之前,我们用hiveSQL先跑出了结果以方便 ...
- Spark源码阅读(五) --- Spark的支持的join方式以及join策略
版本变动 2021-08-30 增加了对Broadcast Hash Join小表大小的评估内容 增加了对Sort Merge Join优于Shuffle Hash Join调用的解释 目录 Spar ...
- Spark支持的Join类型、Join的3种实现
说一下的Spark Join的分类及基本实现机制 文章目录 写在前面 Spark支持哪些Join RDD支持的Join DataFrame支持的Join Spark Join的实现方式 Hash Jo ...
- left semi join 和 left join 区别
left semi join 和 left join 联系和区别 1.都是左表连接,但是semi join右表关联不左表也不会出来,left join不一样 2.semi join只能查询左表信息,l ...
- Win10下安装Spark的尝试总结(尚未出坑)
今天尝试部署Spark(Win10环境),学习了很多很有帮助的文档.基本的次序也算了解了一些.但最后还是没有成功.后面继续努力吧.但学习了一些点还是值得记录下: 1-Spark类似Mysql Work ...
- Spark--什么是宽窄依赖,及特殊join算子,join时何时产生shuffle,何时不产生shuffle
参考文章:什么是宽窄依赖,及特殊join算子,join时何时产生shuffle,何时不产生shuffle 1 什么是宽窄依赖 宽依赖: 发生shuffle时,一定会产生宽依赖,宽依赖是一个RDD中的一 ...
- sql语句中left join和inner join中的on与where的区别分析
原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...
- SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?
SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包 ...
最新文章
- 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取
- Win64 驱动内核编程-33.枚举与删除对象回调
- hive读取hdfs存放文件_Hive基本概念
- Codeforces Round #490 (Div. 3)【完结】
- boost::make_ready_future相关的测试程序
- Gradle标准project属性
- 与素数有关的一些性质及证明(一)
- 全球市场第一季度下跌0.8%,思科的WLAN份额再次下跌
- 17-8-26-WebApp总结
- Pandas sample随机抽样
- 在华为外包的工作体验
- IBM应用SOA 开创网上“虚拟故宫”
- java 分布式缓存 开源_Java开源分布式键-值缓存系统Voldemort
- Consul微服务注册与发现
- 数据库(mysql)表的五大约束条件
- JavaWeb过滤器(Filter)
- real time robust malicious traffic detection via frequency domain analysis记录一下
- Android 阿里云仓库代理配置
- 平安云:在群雄逐鹿的云市场中野蛮生长
- 临汾一中2021高考成绩查询,临汾一中2021届高三团队备考写真
热门文章
- HTTP常见的错误状态码
- 电路基础6-(2)一阶电路
- 美国SC2016:真实力,才永久,联想HPC获得年度大满贯
- library not found for IPods/xxxx库 解决办法
- IEEE1394(火线)接口全面了解
- 智慧工地、智慧工厂、智慧电力、危化品行业等有哪些AI盒子产品及优势呢?其中安全生产有哪些人工智能AI产品的厂家及电话,有没有相应的系统平台呢
- 电子货架标签--拣货标签4代------波次管理案例解析
- pta 吃火锅(C语言实现)
- 《欧美剧集观看最佳索引》【2006-9-24更新】
- cmd命令行mysql乱码解决方法_mysql命令行显示乱码的解决方法