微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spark left join 和 right join 的坑

前言

本文隶属于专栏《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 左右。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐