在大数据学习阶段,Spark 框架是必学的一个组件,而Spark当中的Spark SQL部分,可以说是Spark当中的重点部分,学习期间需要花费相应的时间和精力去学习和掌握。今天的大数据学习分享,我们就主要来讲讲Spark SQL执行计划入门简介。
执行计划这个词大家都不会感到陌生,而且基本上只要是支持SQL的计算引擎,基本上都会有执行计划。而当要优化SparkSQL应用时,一定是要了解SparkSQL执行计划的。
Spark SQL执行计划是什么
简单来说,执行计划是将SQL转换为一组经过优化后的逻辑和物理操作。在Spark SQL中,执行计划就是经过一系列组件的处理、优化,将SQL转换为一组Job(DAG),再放入到Spark Executors中执行的过程。
SparkSQL逻辑执行计划和物理执行计划
在Spark SQL中,执行计划是了解SQL执行详细信息的利器。它包含许多有用的信息,清晰地描述了计划是如何执行的。在我们发现某些SQL执行效率低下时,可以根据执行计划中的信息,来发现效率低下的问题,并可以修改部分SQL查询语句或者调整参数以获得更好的执行性能。
Spark SQL中的执行计划分为两种:
逻辑执行计划
逻辑执行计划是对需要执行的所有转换步骤的简单描述,并不涉及具体该怎么执行。SparkContext负责生成和保存逻辑执行计划。逻辑执行计划是对特定的表进行一系列的转换操作,例如:Join、Filter、where、groupby等等,它描述的是SQL语句想要的执行图。
物理执行计划
物理执行计划是确定连接的类型、分区的数量、过滤器、where、groupBy子句的执行顺序等等。
SparkSQL执行计划生成流程
核心的执行过程一共有5个步骤:
这些操作和计划都是Spark SQL自动处理的,Spark SQL会议最优地方式来执行编写的SQL语句。
这几个步骤的操作会生成各种计划:
Unresolved逻辑执行计划
Resolved逻辑执行计划
优化后的逻辑执行计划
物理执行计划
Spark 3.0生成执行计划
从3.0开始,explain方法有一个新的参数mode,该参数可以指定以什么样的格式展示执行计划:
explain(mode=”simple”):只展示物理执行计划。
explain(mode=”extended”):展示物理执行计划和逻辑执行计划。
explain(mode=”codegen”):展示要Codegen生成的可执行Java代码。
explain(mode=”cost”):展示优化后的逻辑执行计划以及相关的统计。
explain(mode=”formatted”):以分隔的方式输出,它会输出更易读的物理执行计划,并展示每个节点的详细信息。
关于大数据学习,Spark SQL执行计划入门,以上就为大家做了简单的介绍了。Spark SQL在Spark框架当中的重要程度不必多说,这个部分的学习,也需要大家相应的做好规划。成都加米谷大数据,专业
大数据培训机构,大数据开发,数据分析与挖掘,零基础学习班本月正在招生中,课程大纲及试听课程可联系客服预约!