Unresolved Logical Plan 先生成一个纯粹的逻辑计划,这个时候还没和实际上的数据有任何的交互
Logical Plan 这个时候和数据交互后得到一个实际的逻辑执行计划
Optimized Plan 因为上一步已经和数据进行一定的交互,引擎可以在这个基础上进行一定的优化
Physical Plans 在逻辑执行生成的结果上引擎将这个计划落实到多个物理执行计划了
Costed Model 通过Catalyst优化器惊醒评估,在一堆的物理执行计划当中挑选一个对机器成本最低的一个
RDD 生成代码并最终执行
Catalyst工作原理
在SparkSQL中,catalyst的执行过程就是有逻辑执行计划到最终RDD生成的这一部分。我们以一段最简单的SQL语句来看看过程是怎样的
select sum(v)
from (
select
t1.id,
1 + 2 + t1.value as v
from t1 join t2
where
t1.id = t2.id and
t2.id > 50 * 1000) tmp;