缓存数据

可以将df或ds进行缓存(cache方法persist方法)
默认存储级别memory_and_disk

参数调优

可以通过配置下表中的参数调节Spark SQL的性能。

Property Name Default Meaning
spark.sql.files.maxPartitionBytes 134217728 (128 MB) 获取数据到分区中的最大字节数。
spark.sql.files.openCostInBytes 4194304 (4 MB) 该参数默认4M,表示小于4M的小文件会合并到一个分区中,用于减小小文件,防止太多单个小文件占一个分区情况。
spark.sql.broadcastTimeout 300 广播等待超时时间,单位秒。
spark.sql.autoBroadcastJoinThreshold 10485760 (10 MB) 最大广播表的大小。设置为-1可以禁止该功能。当前统计信息仅支持Hive Metastore表。
spark.sql.shuffle.partitions 200 设置shuffle分区数,默认200。

一些基本原则

1 尽量复用RDD
2 使用RDD缓存
3 优化数据结构
4

数据倾斜

原理:
一个分区要处理的数据远远大于其他分区.
如何定位发生数据倾斜的代码


问题分析

  • 某个task特别慢

    • 查看数据倾斜发生在第几个stage中
  • 某个task内存溢出

Spark sql优化相关推荐

  1. 袋鼠云数栈基于CBO在Spark SQL优化上的探索

    原文链接:袋鼠云数栈基于CBO在Spark SQL优化上的探索 一.Spark SQL CBO选型背景 Spark SQL的优化器有两种优化方式:一种是基于规则的优化方式(Rule-Based Opt ...

  2. Spark Sql优化之3.0特性AQE

    前言 这一篇来介绍Spark3.0版本中Spark Sql新增的重要特性AQE AQE全称Adaptive Query Execution,在3.0版本中主要包含以下三个功能 (1)Dynamical ...

  3. spark sql优化:小表大表关联优化 union替换or broadcast join

    ----原语句(运行18min) SELECTbb.ipFROM(SELECTip ,sum(click) click_num,round(sum(click) / sum(imp), 4) user ...

  4. spark sql 优化心得

    本篇文章主要记录最近在使用spark sql 时遇到的问题已经使用心得. 1 spark 2.0.1 中,启动thriftserver 或者是spark-sql时,如果希望spark-sql run ...

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

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

  6. Spark SQL玩起来

    标签(空格分隔): Spark [toc] 前言 Spark SQL的介绍只包含官方文档的Getting Started.DataSource.Performance Tuning和Distribut ...

  7. 如何查询spark版本_掌握Spark SQL中的查询执行

    了解您的查询计划 自从Spark 2.x以来,由于SQL和声明性DataFrame API,在Spark中查询数据已成为一种奢侈. 仅使用几行高级代码就可以表达非常复杂的逻辑并执行复杂的转换. API ...

  8. 大数据Hadoop之——Spark SQL+Spark Streaming

    文章目录 一.Spark SQL概述 二.SparkSQL版本 1)SparkSQL的演变之路 2)shark与SparkSQL对比 3)SparkSession 三.RDD.DataFrames和D ...

  9. Cris 的 Spark SQL 笔记

    一.Spark SQL 概述 1.1 什么是Spark SQL Spark SQL 是 Spark 用来处理结构化数据的一个模块,它提供了2个编程抽象: DataFrame 和DataSet,并且作为 ...

最新文章

  1. 近期活动盘点:设计与人工智能思享会、制造业的转型升级到产业跃迁思享会、瓜子二手车周洲讲座(10.30-11.1)...
  2. 模拟滤波器和数字滤波器
  3. Flutter ------- WebView加载网页
  4. vue 组件之间的传值
  5. php写按条件查询代码,php如何实现按条件查询
  6. 光纤光信号闪红灯_电信光纤光猫光信号闪红灯怎么处理
  7. 让代码看起来更舒服(1):选择适合的配色方案 (转)
  8. 基本数据类型参数传递 与 引用数据类型参数传递区别
  9. discuzx3.2自定义积分操作日志,discuzx积分二次开发完全记录
  10. iphone静音键失灵_静音键——大部分安卓手机都不爱用的神设计
  11. mysql 好用 客户端_5款好用的mysql客户端
  12. 《Redis开发与运维》读书笔记
  13. linux pt远程下载,Linux中使用Transmission下载BT/PT[zz]
  14. AI+BI,悬在云上的梦想,难以落地的应用
  15. Python爬虫 | 以滑雪为例演示大众点评商铺信息采集!
  16. 超神战记不显示服务器,《超神战记》停运公告
  17. 所有weblogic版本下载
  18. 3. 编程规范和编程安全指南--java
  19. 外链怎么做?看看外链代发的这些黑幕!
  20. git删除本地代码库文件后同步到远程仓库同时删除远程仓库文件

热门文章

  1. python3源代码分析_分析一点python源代码
  2. java游戏代码_Java与Kotlin系列文章之性能问题详解
  3. 笔记本电脑开机后在桌面上没有计算机图标,电脑开机之后桌面上没有图标怎么处理...
  4. sql关联查询子表的第一条_SQLAlchemy(8)惰性查询
  5. php 使用phpize报错Cannot find config.m4. Make sure that you run ‘/usr/bin/phpize‘ in the top l
  6. oracle 表收缩,Oracle 收缩表大小 Oracle Shrink Table
  7. python mysql捕获异常_python mysql无法捕获异常
  8. python自动化上传文件_python接口自动化测试二十三:文件上传
  9. php 类遍历,php数组遍历类与用法示例
  10. 接口带声音输出吗_智能化时代,你的功放跟得上科技的脚步吗?