SparkSQL是在Spark1.0版本才加入的,shark已经不会再被投入资源来更新,而SparkSQL利用了Shark中最好的部分(例如:列式存储,等等)。SparkSQL除了致力于覆盖Shark所有功能之外还提供了SQL DSL API和灵活的程序扩展。SparkSQL的内部核心模块是Catalyst。
SparkSQL的逻辑架构图如下所示:
如上图所示:SQL引擎包含四个步骤:解析(parse),绑定(bind),优化(optimization),执行(excutor)。
1,解析阶段:
sparksql有两个语法解析器:基于hive