一、前言
在上一节【SPARKSQL3.0-Unresolved[Parsed]阶段源码剖析】中已经介绍了Unresolved Logical Plan未解析阶段,建议先看完上一篇文章后再来看本文
由于Unresolved LogicalPlan阶段生成的logicalPlan仅仅是一种数据结构,不包含任何数据信息。故在分析器(Analyzer) 阶段会使用事先定义好的规则(Rule)以及 Catalog 等信息对未解析的逻辑计划(Unresolved Logical Plan) 进行补充和替换【logicalPlan】中的各个节点,让新的语法树包含元数据信息
Catalog 主要用于各种函数资源信息和元数据信息(数据库、数据表、数据视图、数据分区与函数等)的统一管理。
想深入了解Catalog可以看我的另一篇:SPARKSQL3.0-Catalog源码剖析