从技术角度,越底层和硬件偶尔越高,可动弹的空间越小,而越高层,可动用的智慧是更多。Catalyst就是个高层的智慧。sql
Catalyst已经逐渐变成了全部Spark框架的解析优化引擎,RDD是通用抽象的数据结果,RDD+Catalyst就构成了Spark的新底层。Catalyst是在RDD基础上进行封装,一旦优化了Catalyst,全部的子框架就都获得了优化。框架
在昨天,咱们已经看到SparkPlan会经过prepareForExecution最终完成转换RDD的操做。大数据
其实际触发须要一个action级别的操做,让咱们看一下collect这个action方法。
其执行会分为几步:优化
在外面调用了conveter方法。spa
其核心就是把catalyst的类型变成Scala的类型,从而完成了数据的输出。ip
至此,咱们已通过滤了数据从SQL输入到数据输出的完整过程。spark
语句流程:
SQL语句 --> 调用sqlparse --> unresolved logical plan
--> 调用analyzer --> resovled logical plan
--> 调用optimizer --> optimized logical plan
--> 调用sparkPlanner --> sparkPlan
--> 调用prepareForExecution --> prepared sparkplanio
执行流程:
sparkplan --> 调用execute --> RDD
--> 调用converter --> Scala数据基础
DT大数据天天晚上20:00YY频道现场授课频道68917580硬件