A s*_*vas 5 apache-spark apache-spark-sql
我已经了解了 dataframe 对象上名为 queryExecution 的变量,并在 console 的输出下方找到了。但不确定它如何有帮助。请在控制台中找到输出。
scala> df.queryExecution
res5: org.apache.spark.sql.SQLContext#QueryExecution =
== Parsed Logical Plan ==
Project [_1#0 AS ID#2,_2#1 AS Token4#3]
LocalRelation [_1#0,_2#1], [[1,a],[2,b]]
== Analyzed Logical Plan ==
ID: int, Token4: string
Project [_1#0 AS ID#2,_2#1 AS Token4#3]
LocalRelation [_1#0,_2#1], [[1,a],[2,b]]
== Optimized Logical Plan ==
LocalRelation [ID#2,Token4#3], [[1,a],[2,b]]
== Physical Plan ==
LocalTableScan [ID#2,Token4#3], [[1,a],[2,b]]
Code Generation: true
Run Code Online (Sandbox Code Playgroud)
谢谢
为了实现 Spark SQL,SparkCatalyst
基于 Scala 中的函数式编程构造实现了一个名为 的可扩展优化器。
在其核心,Catalyst 包含一个通用库,用于表示树并应用规则来操作它们。
在此框架之上构建了特定的关系查询处理库(例如,表达式、逻辑查询计划),以及处理查询执行不同阶段的几组规则:分析、逻辑优化、物理规划和代码生成以编译部分对 Java 字节码的查询。
因此,它queryExecution
是 Dataset/DataFrame 的一个组成部分,它表示将创建和转换数据的查询执行。
我们主要用它来调试和优化转换。
您可以在以下博客文章Deep Dive into Spark SQL's Catalyst Optimizer以及 @JacekLaskowski 的 Mastering Apache Spark 中阅读有关 Catalyst 介绍的更多信息:
查询执行。[在制品]
Debuggig 查询执行。[在制品]
归档时间: |
|
查看次数: |
2444 次 |
最近记录: |