一、前言
上两节介绍了Antlr4的简单使用以及spark中如何构建SessionState,如果没有看过建议先了解上两节的使用,否则看本节会比较吃力
[SPARKSQL3.0-Antlr4由浅入深&SparkSQL语法解析]
[SPARKSQL3.0-SessionState构建源码剖析]
那么在Unresolved阶段,spark主要做了两件事:
1、将sql字符串通过antrl4转化成AST语法树
2、将AST语法树经过spark自定义访问者模式转化成logicalPlan【logicalPlan可以理解为精简版的语法树】
注意:该阶段中语法树中仅仅是数据结构,不包含任何数据信息
二、sql -> antlr4阶段
先来一个简单的示例: