前言

本文隶属于专栏《Spark异常问题汇总》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见 Spark异常问题汇总

问题描述

在开发 Spark SQL 的时候,遇到了一个问题

一个小表 3G 左右, 然后需要 left join 两个大表,一个150G 左右,一个 80G 左右。

  1. 发现没办法 left join 的时候广播左表;
  2. 尝试使用 right join ,广播右表,发现物理执行计划没生效。

问题定位

Spark SQL 在进行数据关联的时候,不能广播基表

也就是left join 只能广播右表,right join 只能广播左表。

问题解决

先利用广播做 inner join,生成两个小表; 然后在用原始小表 left join 这两个新生成的小表,完成最终结果数据产出。

任务从接近2小时,降低到了1 min 左右。

spark left join 和 right join 的坑相关推荐

  1. Spark SQL中出现 CROSS JOIN 问题解决

    Spark SQL中出现 CROSS JOIN 问题解决 参考文章: (1)Spark SQL中出现 CROSS JOIN 问题解决 (2)https://www.cnblogs.com/yjd_hy ...

  2. spark和HSQL的连接join方式

    本文主要介绍spark join相关操作. 讲述spark连接相关的三个方法join,left-outer-join,right-outer-join,在这之前,我们用hiveSQL先跑出了结果以方便 ...

  3. Spark源码阅读(五) --- Spark的支持的join方式以及join策略

    版本变动 2021-08-30 增加了对Broadcast Hash Join小表大小的评估内容 增加了对Sort Merge Join优于Shuffle Hash Join调用的解释 目录 Spar ...

  4. Spark支持的Join类型、Join的3种实现

    说一下的Spark Join的分类及基本实现机制 文章目录 写在前面 Spark支持哪些Join RDD支持的Join DataFrame支持的Join Spark Join的实现方式 Hash Jo ...

  5. left semi join 和 left join 区别

    left semi join 和 left join 联系和区别 1.都是左表连接,但是semi join右表关联不左表也不会出来,left join不一样 2.semi join只能查询左表信息,l ...

  6. Win10下安装Spark的尝试总结(尚未出坑)

    今天尝试部署Spark(Win10环境),学习了很多很有帮助的文档.基本的次序也算了解了一些.但最后还是没有成功.后面继续努力吧.但学习了一些点还是值得记录下: 1-Spark类似Mysql Work ...

  7. Spark--什么是宽窄依赖,及特殊join算子,join时何时产生shuffle,何时不产生shuffle

    参考文章:什么是宽窄依赖,及特殊join算子,join时何时产生shuffle,何时不产生shuffle 1 什么是宽窄依赖 宽依赖: 发生shuffle时,一定会产生宽依赖,宽依赖是一个RDD中的一 ...

  8. sql语句中left join和inner join中的on与where的区别分析

    原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...

  9. SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?

    SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...

  10. sql之left join、right join、inner join的区别,连接自己时的查询结果测试

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包 ...

最新文章

  1. 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取
  2. Win64 驱动内核编程-33.枚举与删除对象回调
  3. hive读取hdfs存放文件_Hive基本概念
  4. Codeforces Round #490 (Div. 3)【完结】
  5. boost::make_ready_future相关的测试程序
  6. Gradle标准project属性
  7. 与素数有关的一些性质及证明(一)
  8. 全球市场第一季度下跌0.8%,思科的WLAN份额再次下跌
  9. 17-8-26-WebApp总结
  10. Pandas sample随机抽样
  11. 在华为外包的工作体验
  12. IBM应用SOA 开创网上“虚拟故宫”
  13. java 分布式缓存 开源_Java开源分布式键-值缓存系统Voldemort
  14. Consul微服务注册与发现
  15. 数据库(mysql)表的五大约束条件
  16. JavaWeb过滤器(Filter)
  17. real time robust malicious traffic detection via frequency domain analysis记录一下
  18. Android 阿里云仓库代理配置
  19. 平安云:在群雄逐鹿的云市场中野蛮生长
  20. 临汾一中2021高考成绩查询,临汾一中2021届高三团队备考写真

热门文章

  1. HTTP常见的错误状态码
  2. 电路基础6-(2)一阶电路
  3. 美国SC2016:真实力,才永久,联想HPC获得年度大满贯
  4. library not found for IPods/xxxx库 解决办法
  5. IEEE1394(火线)接口全面了解
  6. 智慧工地、智慧工厂、智慧电力、危化品行业等有哪些AI盒子产品及优势呢?其中安全生产有哪些人工智能AI产品的厂家及电话,有没有相应的系统平台呢
  7. 电子货架标签--拣货标签4代------波次管理案例解析
  8. pta 吃火锅(C语言实现)
  9. 《欧美剧集观看最佳索引》【2006-9-24更新】
  10. cmd命令行mysql乱码解决方法_mysql命令行显示乱码的解决方法