发生灾难的原因

sql(sqlText = "select tel_number from TableA").filter("tel_number not in (select tel_number from tableB)").agg(count($"serv_number")).show()

说明:
select tel_number from TableA 大约三亿条数据
select serv_number from tableB 大约四百万条数据

这一条sparksql直接发生了两起让人崩溃的bug:

  • Bug 一:

ERROR scheduler.TaskSetManager: Total size of serialized results of 611 tasks (1915.0 MB) is bigger than spark.driver.maxResultSize (1024.0MB)

这个Bug一看感觉很容易就解决,只是一个配置的问题,于是我进行了如下配置:

 --conf spark.driver.maxResultSize=10240

本来设置这么大应该没有问题了,谁知道Bug二出现了:

  • Bug 二:

java.io.EOFException: Premature EOF: no length prefix available

这个问题的解决办法网上并不多可以参考

发生这场灾难的最根本原因就是这条sql语句中使用了:

三亿条数据 not in(四百万条数据)

换个思路写sql

sql(sqlText = "select tel_number from TableA").join(sql(sqlText = "select tel_number,user_id from TableB"),usingColumns = Seq("serv_number"), joinType = "left_outer").where("user_id is null").agg(count($"serv_number")).show()

这样就没有问题了

后记

Spark调优可以参考
基础调优
高级调优
但是SparkSql调优,还得接下来研究研究

SparkSql引起的一场灾难相关推荐

  1. ARM联合创始人:若被英伟达收购 将是一场灾难

    8月5日消息,据国外媒体报道,软银正在寻求出售2016年320亿美元收购的芯片设计公司ARM,以获得资金偿还不断增加的债务,安抚不安投资者的情绪,芯片厂商英伟达则是正在同软银洽谈收购,外媒称其是唯一一 ...

  2. 暴雪2013年内发布linux游戏,只因win8是场灾难?

    2019独角兽企业重金招聘Python工程师标准>>> 看起来Linux玩家数量的增长也吸引了暴雪的目光.据"一位可靠消息来源"透露,暴雪计划年内在Ubuntu ...

  3. 贝鲁特港大爆炸只是一场灾难,却是黎巴嫩国家经济危机的导火索

    文 / 王不留(微信公众号:考研英语笔记) 2021年9月17号的早晨,来杯"经济学人浓香咖啡",提神解困. A shot in the arm: Lebanon The cent ...

  4. 从拼音输入法是汉字的一场灾难 看 什么是最“好”的产品设计

    不知道哪位中西文化融合的大家创立了汉语拼音,这种东西自然没有什么难度,但是从计算机发明之后,却给汉字带来了一场灾难.当然了,如果最终中国人都开始使用英语,那么这场汉字的灾难未必不是好事,不过不管怎么说 ...

  5. 人工ai迪丽热巴 鸿蒙,AI换脸视频被公开“叫卖”,一线女星“成为目标”,女星的一场灾难!...

    原标题:AI换脸视频被公开"叫卖",一线女星"成为目标",女星的一场灾难! 随着科技的发展,AI技术作为一种先进的主流技术也被引入到我们的生活之中.大家都知道, ...

  6. 数学:确定性的丧失---第四章 第一场灾难:真理的丧失

    发信人: paradax (秀树*冬眠中...), 信区: Philosophy 标  题: 数学:确定性的丧失(5) 发信站: 北大未名站 (2002年10月23日22:34:43 星期三), 转信 ...

  7. 搭了我半年顺风车的同事,把我拉黑了:和任何人走太近,都是一场灾难

    黑客技术 点击右侧关注,了解黑客的世界! Java开发进阶 点击右侧关注,掌握进阶之路! Python开发 点击右侧关注,探讨技术话题! 作者丨山叔 图片 | 网络 来源丨不山大叔(ouba798) ...

  8. MySQL GROUP_CONCAT长度限制引发的一场灾难

    GROUP_CONCAT函数是对查处的分组数据对于分组列相同的数据合并成一列用逗号隔开的函数. 但是该函数的长度有个默认限制,默认是1024个字符,超过就会截断,从而导致用count统计GROUP_C ...

  9. 无线蓝牙耳机充电仓充电_无线充电是一场灾难,正在等待发生

    无线蓝牙耳机充电仓充电 重点 (Top highlight) Wireless charging is increasingly common in modern smartphones, and t ...

最新文章

  1. C++ int,float,double,long表示范围
  2. python导出csv不带引号的句子_不带双引号写入CSV文件
  3. 深度学习训练模型中的 train from scrath 是什么意思?(247)
  4. spring react_使用Spring Cloud Gateway保护React式微服务
  5. VS2010报错 error:LINK1123:转换到COF期间失败,文件无限或损坏
  6. 2019蚂蚁金服 Java面试题目!涵盖现场3面真题
  7. 2022年移动应用趋势洞察白皮书
  8. Windows新建一个新的磁盘空间:
  9. 什么是机器学习?(上)
  10. 学 Python 没找对路到底有多惨?| 码书
  11. pandas读取Excel文件
  12. 太强了,头发丝完整保留!一个开源的 Python 实时视频抠图工具
  13. 【Sibelius】制谱软件 (西贝柳斯)入门笔记
  14. matlab-FCM模糊聚类
  15. LOL各大服务器所在位置,LOL各大服务器所在地,8个大区全都在广东,是其他省的两倍...
  16. sap 双计量单位_SAP双计量单位实现基本要素.doc
  17. 企鹅号不更新会封_我们如何为企鹅基金会筹集60,000美元
  18. “夜拍王”荣耀10GT上线,不用三脚架也能出夜景大片!
  19. 《我为什么熬夜?》系列之 倚天屠龙记
  20. 疫情放开后,如何保护居家员工的办公安全?

热门文章

  1. Aurora一些使用过程中碰到的问题
  2. HDU 2676 Matrix
  3. 银联接口的一些加密方式
  4. jquery 插件开发小组
  5. Linux内核同步 - Read/Write spin lock
  6. chrome扩展推荐:此刻、今天、最近~一个关于时间管理的扩展 - Momentum
  7. Linux 搭建NTP服务器
  8. enjoyable parameter in pgbouncer
  9. 理解js的prototype原型对象
  10. mixpanel实验教程(2)