- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大数据导论
第十二章
CONTENTS
目录
PART 01 SPARK SQL简介
PART 02 SPARK SQL执行流程
PART 03 基础数据模型DATAFRAME
PART 04 使用Spark SQL的方式
PART 05 SPARK SQL数据源
PART 06 SPARK SQL CLI介绍
PART 07在Pyspark中使用Spark SQL
PART 08 在Java中连接Spark SQL
PART 09 习题
PART 01 Spark SQL简介
Spark SQL简介
Spark SQL介绍:
Spark SQL是为了处理结构化数据的一个Spark 模块。
不同于Spark RDD的基本API,Spark SQL接口拥有更多关于数据结构本身与执行计划等更多信息。
在Spark内部,Spark SQL可以利用这些信息更好地对操作进行优化。
Spark SQL提供了三种访问接口:SQL,DataFrame API和Dataset API。
当计算引擎被用来执行一个计算时,有不同的API和语言种类可供选择。
这种统一性意味着开发人员可以来回轻松切换各种最熟悉的API来完成同一个计算工作。
Spark SQL简介
Spark SQL具有如下特点
数据兼容方面:能加载和查询来自各种来源的数据。
性能优化方面:除了采取内存列存储、代码生成等优化技术外,还引进成本模型对查询进行动态评估、获取最佳物理计划等;
组件扩展方面:无论是SQL的语法解析器、分析器还是优化器都可以重新定义,进行扩展。
标准连接:Spark SQL包括具有行业标准JDBC和ODBC连接的服务器模式。
Spark SQL简介
Spark SQL具有如下特点
集成:无缝地将SQL查询与Spark程序混合。 Spark SQL允许将结构化数据作为Spark中的分布式数据集(RDD)进行查询,在Python,Scala和Java中集成了API。这种紧密的集成使得SQL查询以及复杂的分析算法可以轻松地运行。
可扩展性:对于交互式查询和长查询使用相同的引擎。Spark SQL利用RDD模型来支持查询容错,使其能够扩展到大型作业,不需担心为历史数据使用不同的引擎。
PART 02 Spark SQL执行流程
Spark SQL执行流程
类似于关系型数据库,Spark SQL语句也是由Projection(a1,a2,a3)、 Data Source (tableA)、 Filter(condition)三部分组成,分别对应SQL查询过程中的Result、Data Source、 Operation,也就是说SQL语句按Result--Data Source--Operation的次序来描述的。
Spark SQL执行流程
解析(Parse)
对读入的SQL语句进行解析,分辨出SQL语句中哪些词是关键词(如SELECT、 FROM、WHERE),哪些是表达式、哪些是 Projection、哪些是 Data Source 等,从而判断SQL语句是否规范;
绑定(Bind)
将SQL语句和数据库的数据字典(列、表、视图等)进行绑定,如果相关的Projection、Data Source等都存在,则这个SQL语句是可以执行的;
Spark SQL执行流程
优化(Optimize)
一般的数据库会提供几个执行计划,这些计划一般都有运行统计数据,数据库会在这些计划中选择一个最优计划;
执行(Execute)
按Operation--Data Source--Result 的次序来执行计划。在执行过程有时候甚至不需要读取物理表就可以返回结果,比如重新运行刚运行过的SQL语句,可能直接从数据库的缓冲池中获取返回结果。
PART 03 基础数据模型DataFrame
基础数据模型DataFrame
DataFrame是Spark SQL的核心,它将数据保存为行构成的集合,行对应列有相应的列名。
DataFrame与RDD的主要区别在于,DataFrame带有Schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。
这使得Spark SQL可以掌握更多的结构信息,从而能够对DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化,最终达到大幅提升运行时效率的目标。
基础数据模型DataFrame
DataFrame与RDD的对比:
PART 04 使用Spark SQL的方式
使用Spark SQL的方式
使用Spark SQL,首先利用sqlContext从外部数据源加载数据为DataFrame;然后,利用DataFrame上丰富的API进行查询、转换;最后,将结果进行展现或存储
您可能关注的文档
最近下载
- 江铃-江铃E400-产品使用说明书-E400豪华型-JX70021BEV-江铃E400使用说明书.pdf VIP
- 污水处理厂安全风险分级管控和隐患排查治理双体系方案资料(2022-2023版).pdf VIP
- 心内科典型案例分享.docx VIP
- 海南自贸港“零关税”进境商品清单1.xlsx VIP
- (完整)高中英语3500词汇表.pdf VIP
- 2025年山东省高考地理试卷真题(含答案解析).docx
- 《土地勘测定界规程 TD-T1008-2016》.pdf
- 铁矿石基础的知识培训.ppt VIP
- 五、六年级下册体育教案.doc VIP
- 三菱FX5U PLC编程及应用 课件 项目三 混料灌控制系统的编程与实现.pdf
文档评论(0)