SparkSQL性能优化

1、设置shuffle过程中的并行度,可以通过spark.sql.shuffle.partitions设置shuffle并行度。(在SQLContext.setConf()中设置)。

2、Hive数据仓库创建的时候,合理设置数据类型,比如设置成Int的就不需要设置成BIGINT,减少数据类型的不必要开销。

3、SQL语句的优化,尽量给出明确的列,比如select name from table 不建议使用 select * from table.

4、并行的处理查询结果,对于SparkSQL查询的结果,如果数据量比较大,比如超过1000条,那么久不要使用collect到driver在处理,使用foreach算法并行处开立查询结果。

5、缓存表。 对于一条SQL语句中可能多次使用到的表,可以对其进行缓存,使用SQLContext.cacheTable(TableName)或者DataFrame.cache即可,SparkSQL会用内存列存储的格式进行表的缓存,然后SparkSQL就可以仅仅扫描需要使用的列,并且自动优化压缩,来最小化内存的使用和GC的开销,SQLContext.uncacheTable(tableName)可以将表从缓存中移除,使用SQLContext.setConf()设置,可以通过spark.sql.inMemoryColumnarStorage.batchSize这个参数,默认10000,配置列存储单位。

6、广播JOIN表,spark.sql.autoBroadcastJoinThreshold,默认10485760(10M),在内存够用的情况下,增大其大小,可以将join中的较小的表广播出去,而不用进行网络数据传输。

7、钨丝计划,spark.sql.tungsten.enabled。默认是true,自动管理内存。

8、最有效的方法为:并行的处理查询结果,缓存表,广播join表!

SparkSQL性能优化相关推荐

  1. spark-sql性能优化之——动态实现多个列应用同一个函数

    在对一个dataframe的多个列实现应用同一个函数时,是否能动态的指定? 例如: 对A,B,C三列实现分组统计 1.初始化spark,构建DF val spark = SparkSession.bu ...

  2. 真·屠龙之术 | 一次SparkSQL性能分析与优化之旅及相关工具小结

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...

  3. EMR Spark-SQL性能极致优化揭秘 概览篇

    作者:林学维,阿里云智能EMR团队技术专家,目前主要专注于EMR产品中开源计算引擎的优化工作 引子 最近阿里云 E-MapReduce 团队在 TPCDS-Perf 榜单中提交了最新成绩,相比第二名( ...

  4. Spark性能优化 -- Spark SQL、DataFrame、Dataset

    本文将详细分析和总结Spark SQL及其DataFrame.Dataset的相关原理和优化过程. Spark SQL简介 Spark SQL是Spark中 具有 大规模关系查询的结构化数据处理 模块 ...

  5. spark 算子使用类变量_自己工作中超全spark性能优化总结

    来源:https://zhuanlan.zhihu.com/ p/108454557 作者:一块小蛋糕 编辑:深度传送门 Spark是大数据分析的利器,在工作中用到spark的地方也比较多,这篇总结是 ...

  6. 干货 | 数据思维在携程商旅页面性能优化中的一次实践

    作者简介 Graviton,携程研发总监,专注数据思维驱动团队效能与技术发展. 本文旨在通过一个实际的例子,说明如何通过数据思维来解决研发工作中的一些棘手问题.通过此文,希望能够清楚地阐述我对下面几个 ...

  7. rdd数据存内存 数据量_超全spark性能优化总结

    Spark是大数据分析的利器,在工作中用到spark的地方也比较多,这篇总结是希望能将自己使用spark的一些调优经验分享出来. 一.常用参数说明 --driver-memory 4g : drive ...

  8. Spark SQL运行流程及性能优化:RBO和CBO

    1 Spark SQL运行流程 1.1 Spark SQL核心--Catalyst Spark SQL的核心是Catalyst查询编译器,它将用户程序中的SQL/Dataset/DataFrame经过 ...

  9. kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势

    陈显铭(山丘) 读完需要 6分钟 速读仅需 2 分钟 陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构.服务化.性能优化等有深入的理解.参与支付宝支付链路核心系统,设计.调优应用系统关键能力, 高效 ...

最新文章

  1. MyBatis学习总结(三)——优化MyBatis配置文件中的配置
  2. 思维导图下载 注册安全_2019安全工程师《建筑实务》第二章第一节考点:物料提升机思维导图...
  3. 20162318 2018-2019-2《网络对抗技术》Exp1 PC平台逆向破解
  4. 巨杉内核笔记(一)| SequoiaDB 会话(session)简介
  5. Nature methods | Alevin-fry, 一种高效准确的单细胞测序数据预处理工具
  6. OLAP组件-Clickhouse源码
  7. qcustomplot删除一条曲线_被“谭卓”旗袍造型给惊艳,波波头搭配一条酒红色旗袍,华丽高贵...
  8. Kotlin入门(3)基本变量类型的用法
  9. linux at模块,使用kgdb调试linux内核及内核模块
  10. CentOS 8源码安装Zabbix5.0
  11. VGG16的10折交叉验证实现cifar10的分类(keras实现)
  12. PS学习-剪切蒙版制作艺术字
  13. matlab 中输入log就是ln吗?(ln就是log以e为底的对数)
  14. idea回到上一个光标位置
  15. 692. Top K Frequent Words
  16. 运动步数已更新,方法教程来了!
  17. 城市是最好的产业平台 —— 让企业成为城市的名片,城市成为企业的展厅
  18. 用计算机进行会计核算与手工会计核算,会计核算软件与手工会计核算软件有什么区别...
  19. 请捎去我的祈祷和祝福
  20. 数据分析:什么是业务?全面解析问题

热门文章

  1. python打印数组中期望元素的位置
  2. TCP协议——粘包与拆包
  3. 带旋treap概念及模板,带例题:普通平衡树
  4. CodeForces:54
  5. CSP2019洛谷P5665:划分(单调队列,高精度)
  6. P4370-[Code+#4]组合数问题2【数学,堆】
  7. jzoj3918-蛋糕【二分】
  8. jzoj4224-食物【多重背包】
  9. loj#10050-The XOR Largest Pair【Trie(字典树)】
  10. jzoj1373-食物链【并查集】