RDD的运行会完全按照开发者的代码执行, 如果开发者水平有限,RDD的执行效率也会受到影响。而SparkSQL会对写完的代码,执行“自动优化”, 以提升代码运行效率,避免开发者水平影响到代码执行效率。RDD:内含数据类型不限格式和结构Dataframe:100%是二维表结构,可以被针对SparkSQL的自动优化,依赖于Catalyst优化器 二、Catalyst优化器
为了解决过多依赖Hive的问题,SparkSQL使用了一个新的SQL优化器替代Hive中的优化器,这个优化器就是Catalyst,整个SparkSQL的架构大致如下:
一、步骤 API层简单的说就是Spark会通过一些API接受SQL语句收到SQL语句以后,将其交给Catalyst,Catalyst负责解析SQL,生成执行计划等Catalyst的输出应该是RDD的执行计划最终交由集群运行 二、具体步骤 三、SparkSQL的执行流程