spark3.x新特性

Adaptive Query Execution自适应查询(SparkSQL)

由于缺乏或者不准确的数据统计信息(元数据)和对成本的错误估算(执行计划调度)导致生成的初始执行计划不理想
在Spark3.x版本提供Adaptive Query Execution自适应查询技术
通过在”运行时”对查询执行计划进行优化,允许Planner在运行时执行可选计划,这些可选计划将会基于运行时数据
统计进行动态优化,从而提高性能.
Adaptive Query Execution AQE主要提供了三个自适应优化:

  • 动态合并Shuffle Partitions
    可以动态调整shuffle分区的数量。用户可以在开始时设置相对较多的shuffle分区数,AQE会在运行时将相邻的小分区合并为较大的分区。

  • 动态调整Join策略
    此优化可以在一定程度上避免由于缺少统计信息或着错误估计大小(当然也可能两种情况同时存在),而导致执行计划性能不佳的情况,比如某个join操作中其中一个数据集很小,通过网络io的shuffle次数会比较多。这种自适应优化可以在运行时sort merge join转换成broadcast hash join,从而进一步提升性能,也就是我们之前提到的将小数据集发送到各executor的线程中
    在这里插入图片描述

  • 动态优化倾斜Join(Skew Joins)
    skew joins可能导致负载的极端不平衡,并严重降低性能。在AQE从shuffle文件统计信息中检测到任何倾斜后,它可以将倾斜的分区分割成更小的分区,并将它们与另一侧的相应分区连接起来。这种优化可以并行化倾斜处理,获得更好的整体性能。A0分组的数据量比较大,会动态给它拆分,达到各分组数据集大小平衡

在这里插入图片描述
触发条件:
l.分区大小>spark.sql.adaptive.skewJoin.skewedPartitionFactor(default:=lO)*"median partition size(中位数分区大小)
2.分区大小>spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes(default=256MB)

开启AQE方式
set spark.sql.adaptive.enabled true;

总的来看,我们无需人为设置复杂参数,只需设置AQE,spark就可以自动化优化sparksql查询

动态分区裁剪

该特性无需人为开启,spark3.x会根据具体sparksql语句来实现分区数的动态裁剪,提升性能

koalas API

该api是为了让开发者能在分布式环境中,模拟pandas数据处理,更高效地处理大数据,弥补pandas仅限单节点运行的缺点,我们python开发者就有两种编程选择,pyspark和koalas

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/520708.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构顺序表的初始化,头插,尾插,头删,尾删,指定位置删除,指定位置插入,查找,销毁(详解)

目录 前言顺序表的介绍静态顺序表动态顺序表一.顺序表的初始化二.销毁扩容顺序表打印顺序表三.头插四.尾插五.头删六.尾删七.指定位置之前(包括指定位置)的插入八.指定位置数据的删除九.查找全部的代码实现总结 前言 数据结构是什么? 数据结…

碘浊度法与红外相机联用测定食品中维生素C

🌞欢迎来到看论文的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年4月6日&…

1.微服务

一、微服务是什么 微服务是一种架构风格,即,一个应用应该是一组小型服务,每个服务器只负责一种服务,服务之间可以通过 HTTP 的方式进行互通。每一个功能元素最终都是一个可独立替换和独立升级的软件单元。 可以说,微…

网络编程套接字应用分享【Linux C/C++ 】【UDP应用 | TCP应用 | TCP线程池小项目】

目录 前提知识 1. 理解源ip,目的ip和Macip 2. 端口号 3. 初识TCP,UDP协议 4. 网络字节序 5. socket 编程 sockaddr类型 一,基于udp协议编程 1. socket——创建套接字 2. bind——将套接字强绑定 3. recvfrom——接受数据 4. s…

c++11的重要特性2

可变参数模板在3中。 目录 ​编辑 1、统一的列表初始化: std::initializer_list: std::initializer_list是什么类型: std::initializer_list使用场景: 让模拟实现的vector也支持{}初始化和赋值 2、声明 auto decltype nul…

「每日跟读」英语常用句型公式 第4篇

「每日跟读」英语常用句型公式 第4篇 1. I’ve decided to ____ 我决定要____了 I’ve decided to take a vacation (我决定要去度假) I’ve decided to change my lifestyle (我决定要改变我的生活方式) I’ve decided to adopt a dog (我决定要收养一条狗了) I’ve dec…

【深度学习环境配置】一文弄懂cuda,cudnn,NVIDIA Driver version,cudatoolkit的关系

【深度学习环境配置】一文弄懂cuda,cuDNN,NVIDIA Driver version,cudatoolkit的关系 NVIDIA Driver version(NVIDIA驱动程序)CUDAcuDNNcudatoolkit深度学习环境配置顺序 今天突然发现配置的环境有些问题,意…

使用阿里云试用Elasticsearch学习:2.6 深入搜索——控制相关度

处理结构化数据(比如:时间、数字、字符串、枚举)的数据库,只需检查文档(或关系数据库里的行)是否与查询匹配。 布尔的是/非匹配是全文搜索的基础,但不止如此,我们还要知道每个文档与…

java日志框架简介

文章目录 概要常用日志框架常见框架有以下:slf4j StaticLoggerBinder绑定过程(slf4j-api-1.7.32 )JCL 运行时动态查找过程:(commons-logging-1.2)使用桥接修改具体日志实现 一行日志的打印过程开源框架日志…

【图论】【分类讨论】LeetCode3017按距离统计房屋对数目

本文涉及的知识点 图论 分类讨论 本题同解 【差分数组】【图论】【分类讨论】【整除以2】3017按距离统计房屋对数目 LeetCode3017按距离统计房屋对数目 给你三个 正整数 n 、x 和 y 。 在城市中,存在编号从 1 到 n 的房屋,由 n 条街道相连。对所有 …

服务效率飙升!2024最新Zoho Desk功能解析

2024年,立足于服务经济浪潮,如何为您的客户提供优质服务,高效解决客户工单,赢得客户美誉度,是当下各行企业的着力点。 在企业中,与客户发生最直接接触的就是客户服务部门。规范化客服部门业务流程&#xf…

【JavaWeb】Day36.MySQL概述——数据库设计-DDL(三)

查询 关于表结构的查询操作,工作中一般都是直接基于图形化界面操作。 1.查询当前数据库所有表 2.查看指定表结构 3.查询指定表的建表语句 注意:23版的点击导航中的转到DDL 修改 关于表结构的修改操作,一般也是直接基于图形化界面操作。 添…

LeetCode---127双周赛

题目列表 3095. 或值至少 K 的最短子数组 I 3096. 得到更多分数的最少关卡数目 3097. 或值至少为 K 的最短子数组 II 3098. 求出所有子序列的能量和 一、或值至少k的最短子数组I&II 暴力的做法大家都会,这里就不说了,下面我们来看看如何进行优化…

彩虹易支付接口配置

支付通道配置 基本概念 彩虹易支付系统有强大的支付接口扩展能力,首先需要明白以下几个概念。 支付方式: 支付方式用于定义发起支付的调用值(在前台开发文档里面显示)与支付方式名称。目前系统自带6种支付方式,它们的…

腾讯云最新活动及优惠券领取指南

随着云计算技术的不断发展和普及,越来越多的企业和个人选择将业务迁移到云端。腾讯云作为国内领先的云计算服务提供商,经常推出各种优惠活动,以帮助用户降低成本、提高效率。本文将为大家详细介绍腾讯云的最新活动及优惠券领取指南&#xff0…

猫头虎分享已解决Bug || **Error (通用错误)** 全景剖析

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

数学杂谈之一:数学的形态

数学杂谈之一:数学的形态 数学的形态可以根据不同的角度和视角进行分类和描述。下面是从数学的发展和应用的不同角度进行的分类: 原始形态:原始形态是指数学的发展和应用起源的形态。它涉及到数学的理论构建、证明和发现过程,是数…

目标追踪StrongSORT——基于DeepSORT重大升级提高多目标跟踪的准确性和鲁棒性

1、概述 1.1 DeepSORT DeepSORT算法是在SORT基础上发展起来的一种多目标跟踪算法。SORT算法结合了目标检测器和跟踪器,其中跟踪器的核心是卡尔曼滤波和匈牙利算法。卡尔曼滤波用于预测目标在下一帧的位置和状态,而匈牙利算法则用于将预测状态与实际检测…

【Linux】Linux C 编程

在 Windows 下编程首先就是安装对应的 IDE ,然后在 IDE 里面进行代码编写和编译,但是在 Linux 下,这两个部分是分开的,比如我们可以使用 vim 编辑器编写代码,然后用 gcc 编译器编译代码。Ubuntu 下有一些可以进行编程的…

Azkaban集群模式部署详细教程

序言 Azkaban是一个用于工作流程调度和任务调度的开源工具,它可以帮助用户轻松地管理和监控复杂的工作流程。Azkaban的架构设计旨在提供高度可扩展性和可靠性,同时保持易用性和灵活性。 Azkaban的架构可以分为三个主要组件:Executor、Web Server和db数据…