阅读本节需要先掌握【SPARKSQL3.0-Optimizer阶段源码剖析】
本质:物理计划阶段将optimizer阶段优化后的逻辑算子树【LogicalPlan】进行进一步转换,生成物理算子树【SparkPlan】,物理算子树的节点可以直接生成 RDD 或对 RDD 进行 transformation 操作
最终完成了从sql字符串到生成可执行的RDD算子,再由RDD算子去执行操作的过程
这也正是为何spark官网强烈建议使用sparksql,而不是底层RDD算子,因为sparksql模块在执行rdd操作之上做了很多的优化
这里沿用一开始的示例,将action操作改为collect,代码:
val sparkConf = new SparkConf()