Spark SQL概述

Spark SQL是用来处理结构化数据的。可以用连接到很多外部数据源,包括Hive、JSON、JDBC等。
Spark SQL复用了Hive的前端和Metastore。
Spark SQL不仅仅有访问或者操作SQL的功能,还提供了其他的非常丰富的操作:外部数据源、优化等。

  1. Spark SQL的应用并不局限于SQL;
  2. 可以直接访问Hive、Json、parquet等文件的数据;
  3. SQL知识Spark SQL的一个功能而已;
  4. Spark SQL提供了SQL的API,还提供了DataFrame和DataSet的API

Spark SQL架构

在这里插入图片描述
输入可以是Hive QL 或者Spark Program 或者 Streaming SQL,如何被Catalyst解析?
首先生成Unresolved Logical Plan,这是未完成的逻辑执行计划,然后与元数据MetaStore中的Schema表信息整合,生成逻辑执行计划。
这个逻辑执行计划是最原始的,之后还会做很多优化,有很多规则作用上去,随后生成优化过后的逻辑执行计划,最终才生成物理执行计划即Spark作业,然后运行。
而Shark中的解析、逻辑执行计划的生成和优化全部都依赖于Hive的。而SparkSQL使用了Catalyst,不依赖于Hive。

SparkSQL的解析过程与Hive解析过程类似的:
SQL 解析成 抽象语法树,然后逻辑执行计划,然后逻辑执行计划进行优化,然后生成物理执行计划,然后形成对应框架的作业,提交到对应的集群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值