本期内容:
1. Catelyst本地解析
2. Catalyst流程精彩解析
Catalyst是Spark SQL中的一套函数式关系查询优化框架。
在Catalyst的帮助下,Spark SQL的开发者们只需编写极为精简直观的申明式代码,即可实现各种复杂的查询优化策略,从而大大降低了Spark SQL查询优化器的开发复杂度,也加快了项目整体的迭代速度。
Spark 2.X是以
DataFrame和DataSet为主要API,DataFrame和DataSet的底层依赖于Catalyst和Tungsten。以后的Spark Streaming也会基于DataFrame和DataSet。分析Catalyst,不是为了转向Spark SQL,是为了研究Spark新一代的执行引擎和Spark Streaming。
方便加入新的数据类型
Catalyst主要包含3点:
1. Tree数据结构
2. Rules解析规则
3. 优化方式
SQL、
DataFrame、DataSet <-> Unrecognized Logic Plan -> Logic Plan -> Optimized Logic Plan -> Physical Plan -> Cost based model -> Selected Physical Plan -> RDD
借助Scla语法的高级特性,能将物理计划直接转化为Java字节码。