扩展_Catalyst 优化器_查看计划 | 学习笔记

简介: 快速学习扩展_Catalyst 优化器_查看计划

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:扩展_Catalyst 优化器_查看计划】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12041


扩展_Catalyst 优化器_查看计划

 

Catalyst 优化器_查看计划

 

catalyst 的执行过程第一步,catalyst 把 SQL 解析解析为一棵语法树,接下来把类型信息添加到语法树当中,进行优化,接下来生成完物理计划,还会再走到一个成本模型,对整个树再次进行一个优化,整个的 catalyst 不止生成一个物理计划,会生成多个物理计划,通过成本模型去选择一个更好的物理计划,就是整个优化过程。

了解整个优化过程以后,我们需要先去运行一段代码来去看一看这个过程是怎么样的,先打开我们的 IDEA,然后先拷贝一些代码,比如,拷贝一下 person,进入到我们的这个黑窗口当中,我们在这儿输入 past,把第一段代码先移过来,再继续向下拷贝第二段代码,拷贝我们的这一段生成这个表的这一段,把它拷过来以后,我们去执行,拷过来的这两段代码。

image.png

执行完以后,我们还要再考虑一下 person,进来输入 past,先拷贝 person,拷贝完 person,切回来,拷贝这段代码。

我们再来拷贝一下执行这样的一个代码,执行完,我们就直接生成一个 result df,就可以直接使用 sparkSQL 来进行一段查询,写一个最基础最简单的,Selectname from person 创建,接下来就可以使用 where,age 大于十岁,age 小于 20 岁,接下来去执行这样的一行代码,我们可以通过 result df 来去查看一下 result df 所有的 DF 来去查看一下他的逻辑计划,可以使用 query execution,运行一下 execution,通过 query execution 就可以看到生成的这段东西,其实就是我们所说的逻辑计划。

首先第一点,使用 past logic plan 是生成了一颗 AST 树,然后分析这棵树,分析这棵树的情况,分析这棵树的这个步骤,就是在添加一些结构信息过去,对于这个地方,直接是 age 大于 10 小于 20,变成了 age#大于 10age#小于 20,第三步就生成了一个 optimized logical plan 就是优化过的这个逻辑计划。

image.png

接下来我们再通过 RESULT2 的 result df ,使用一个叫做 X man 来进行物理计划的查看,执行一下,发现这是 physical plan,物理执行计划,就只是了解怎么去运行,这是整个的优化过程。

image.png

这时不仅可以在这儿看到,也可以打开,浏览器在这个 web UI 上,也可以看到这个内容,刷新一下,看到有一行 SQL,点击 SQL,能看到有一个好的展示,能看到这个系统,我们去让他看一下这个接口,我们可以选 result df ,然后去收集一下,收集完以后,我们要去执行这段系统,执行了才能看见最后的这个效果,再切回我们的浏览器当中刷新一下,看到一个 SQL 的执行,点击一下 cpu 的执行,这是整个的这棵树的生成,以及物理计划是什么样子的,这就是整个计划。

相关文章
|
SQL 分布式计算 Java
扩展_Catalyst 优化器_优化过程 | 学习笔记
快速学习扩展_Catalyst 优化器_优化过程
187 0
扩展_Catalyst 优化器_优化过程 | 学习笔记
|
SQL 分布式计算 大数据
扩展_Catalyst 优化器_SparkSQL 和 RDD 的区别 | 学习笔记
快速学习扩展_Catalyst 优化器_SparkSQL 和 RDD 的区别
138 0
扩展_Catalyst 优化器_SparkSQL 和 RDD 的区别 | 学习笔记
|
7月前
|
达摩院 开发者 容器
「达摩院MindOpt」优化形状切割问题(MILP)
在制造业,高效地利用材料不仅是节约成本的重要环节,也是可持续发展的关键因素。无论是在金属加工、家具制造还是纺织品生产中,原材料的有效利用都直接影响了整体效率和环境影响。
「达摩院MindOpt」优化形状切割问题(MILP)
|
7月前
|
人工智能 自然语言处理 达摩院
MindOpt 云上建模求解平台:多求解器协同优化
数学规划是一种数学优化方法,主要是寻找变量的取值在特定的约束情况下,使我们的决策目标得到一个最大或者最小值的决策。
|
2月前
|
机器学习/深度学习 算法 数据可视化
如果你的PyTorch优化器效果欠佳,试试这4种深度学习中的高级优化技术吧
在深度学习领域,优化器的选择对模型性能至关重要。尽管PyTorch中的标准优化器如SGD、Adam和AdamW被广泛应用,但在某些复杂优化问题中,这些方法未必是最优选择。本文介绍了四种高级优化技术:序列最小二乘规划(SLSQP)、粒子群优化(PSO)、协方差矩阵自适应进化策略(CMA-ES)和模拟退火(SA)。这些方法具备无梯度优化、仅需前向传播及全局优化能力等优点,尤其适合非可微操作和参数数量较少的情况。通过实验对比发现,对于特定问题,非传统优化方法可能比标准梯度下降算法表现更好。文章详细描述了这些优化技术的实现过程及结果分析,并提出了未来的研究方向。
33 1
|
5月前
|
人工智能 算法 调度
优化问题之如何选择合适的优化求解器
优化问题之如何选择合适的优化求解器
|
5月前
|
调度 决策智能
优化问题之优化求解器有哪些主要的评估特性
优化问题之优化求解器有哪些主要的评估特性
|
达摩院 调度
使用达摩院MindOpt优化交通调度_最大化通行量—线性规划问题
在数学规划中,网络流问题是指一类基于网络模型的流量分配问题。网络流问题的目标是在网络中分配资源,使得网络的流量满足一定的限制条件,并且使得某些目标函数最小或最大化。网络流问题通常涉及一个有向图,图中每个节点表示一个资源,每条边表示资源之间的关系。边上有一个容量值,表示该边上最多可以流动的资源数量。流量从源节点开始流出,经过一系列中间节点,最终到达汇节点。在这个过程中,需要遵守一定的流量守恒和容量限制条件。
|
7月前
|
存储 达摩院 调度
「达摩院MindOpt」优化FlowShop流水线作业排班问题
在企业在面临大量多样化的生产任务时,如何合理地安排流水线作业以提高生产效率及确保交货期成为了一个重要的问题。
「达摩院MindOpt」优化FlowShop流水线作业排班问题