摘要: Spark SQL(6) OptimizedPlan 在这一步spark sql主要应用一些规则,优化生成的Resolved Plan,这一步涉及到的有Optimizer。 之前介绍在sparksession实例化的是会实例化sessionState,进而确定QueryExecution、Analy 阅读全文
posted @ 2020-07-26 17:03 刘姥爷观园子 阅读(372) 评论(0) 推荐(0) 编辑
摘要: Spark SQL(5) CacheManage 在spark sql的analyzed plan 生成之后,会经过一步withCachedData的操作,其实就是根据对logicalplan的缓存,如果logicalPlan的查询结果相同则会替换相对应的节点。这步发生在QueryExecution 阅读全文
posted @ 2020-07-26 16:38 刘姥爷观园子 阅读(360) 评论(0) 推荐(0) 编辑
摘要: Spark Sql(4)-Unresolved Plan到Analyzed Plan 在第三篇总结了Unresolved Plan的生成过程,在此之后就是将其转换为Analyzed Plan。这这一步主要涉及到QueryExecution、Analyzer、catalog等。 spark.sql() 阅读全文
posted @ 2020-07-26 16:24 刘姥爷观园子 阅读(475) 评论(0) 推荐(0) 编辑
摘要: Spark SQL Parser到Unresolved LogicPlan Spark SQL Parser简单来说就是将sql语句解析成为算子树的过程,在这个过程中,spark sql采用了antlr4来完成。 当执行spark.sql()方法时,会调用 Dataset.ofRows(self, 阅读全文
posted @ 2020-07-26 14:34 刘姥爷观园子 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 本文主要简述InternalRow、TreeNode及其子类。 一、InternalRow 在Spark SQL的内部实现中,InternalRow就是用来表示一行行数据的,也就是说在物理计划执行的阶段,Spark SQL转换和操作的都是RDD[InternalRow]。 其UML类图如下: 其中: 阅读全文
posted @ 2020-07-26 11:47 刘姥爷观园子 阅读(775) 评论(0) 推荐(0) 编辑