- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
通信数据分析与实战SparkSQL第四章第1节
2知道SparkSQL的作用掌握SparkSQL的架构学习目标TARGET
SparkSQL的概述在很多情况下,开发工程师并不了解Scala语言,也不了解Spark常用API,但又非常想要使用Spark框架提供的强大的数据分析能力。Spark的开发工程师们考虑到了这个问题,利用SQL语言的语法简洁、学习门槛低以及在编程语言普及程度和流行程度高等诸多优势,从而开发了SparkSQL模块,通过SparkSQL,开发人员能够通过使用SQL语句,实现对结构化数据的处理。
SparkSQL的概述SparkSQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象结构叫做DataFrame的数据模型(即带有Schema信息的RDD),SparkSQL作为分布式SQL查询引擎,让用户可以通过SQL、DataFramesAPI和DatasetsAPI三种方式实现对结构化数据的处理。
SparkSQL的概述SparkSQL主要提供了以下三个功能:SparkSQL可从各种结构化数据源中读取数据,进行数据分析。SparkSQL包含行业标准的JDBC和ODBC连接方式,因此它不局限于在Spark程序内使用SQL语句进行查询。SparkSQL可以无缝地将SQL查询与Spark程序进行结合,它能够将结构化数据作为Spark中的分布式数据集(RDD)进行查询。
SparkSQL的架构SparkSQL架构与Hive架构相比,把底层的MapReduce执行引擎更改为Spark,还修改了Catalyst优化器,SparkSQL快速的计算效率得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给SparkSQL的Catalyst优化器进行负责和管理。SparkSQL架构图
SparkSQL的架构Spark要想很好地支持SQL,需要完成解析(Parser)、优化(Optimizer)、执行(Execution)三大过程。
SparkSQL的架构SqlParse:完成SQL语法解析功能,目前只提供了一个简单的SQL解析器。Analyze:主要完成绑定工作,将不同来源的UnresolvedLogicalPlan和元数据进行绑定,生成ResolvedLogicalPlan。Optimizer:对ResolvedLo;gicalPlan进行优化,生成OptimizedLogicalPlan。Planner:将LogicalPlan转换成PhysicalPlan。CostModel:主要根据过去的性能统计数据,选择最佳的物理执行计划。Catalyst优化器在执行计划生成和优化的工作时,离不开内部的五大组件。
SparkSQL的架构在了解了上述组件的作用后,下面分步骤讲解SparkSQL工作流程。
SparkSQL的架构SparkSQL工作流程:1下在解析SQL语句之前,会创建SparkSession,涉及到表名、字段名称和字段类型的元数据都将保存在SessionCatalog中;2当调用SparkSession的sql()方法时就会使用SparkSqlParser进行解析SQL语句,解析过程中使用的ANTLR进行词法解析和语法解析;3使用Analyzer分析器绑定逻辑计划,在该阶段,Analyzer会使用AnalyzerRules,并结合SessionCatalog,对未绑定的逻辑计划进行解析,生成已绑定的逻辑计划;
SparkSQL的架构4使用Optimizer优化器优化逻辑计划,该优化器同样定义了一套规则(Rules),利用这些规则对逻辑计划和语句进行迭代处理;5使用SparkPlanner对优化后的逻辑计划进行转换,生成可以执行的物理计划SparkPlan;6使用QueryExecution执行物理计划,此时则调用SparkPlan的execute()方法,返回RDDs。SparkSQL工作流程:
12小结知道SparkSQL的作用掌握SparkSQL的架构
通信数据分析与实战SparkSQL第四章第2节
14知道DataFrame和RDD的区别熟悉DataFrame的创建掌握DataFrame的常用操作学习目标TARGET
DataFrame的概述SparkSQL使用的数据对象并非是RDD,而是DataFrame。在Spark1.3.0版本之前,DataFrame被称为SchemaRDD。DataFrame使Spark具备处理大规模结构化数据的能力。在Spark中,DataFrame是一种以RDD为基础的分布式数据集。DataFrame的结构类似传统数据库的二维表
您可能关注的文档
- 《社群营销》课件——项目四 变现.pptx
- 《通信数据分析与实战》课件——第八章 Spark MLlib机器学习算法库.pptx
- 《通信数据分析与实战》课件——第二章 Spark 基础.pptx
- 《通信数据分析与实战》课件——第九章 综合案例-Spark 实时交易数据统计.pptx
- 《通信数据分析与实战》课件——第六章 Kafka 分布式发布订阅消息系统.pptx
- 《通信数据分析与实战》课件——第七章 Spark Streaming实时计算框架.pptx
- 《通信数据分析与实战》课件——第三章 Spark RDD.pptx
- 《通信数据分析与实战》课件——第五章 HBase 分布式数据库.pptx
- 《通信数据分析与实战》课件——第一章 Scala 语言基础.pptx
- 《物联网工程综合实训》 课件——项目1 家居设备智能化控制系统的安装与调试.pptx
- 市委指导组组长在市林业局领导班子2024年专题民主生活会上的点评讲话.docx
- 局党组关于开好2024年度县以上党和国家机关党员领导干部民主生活会的通知.docx
- 领导干部2024年度专题民主生活会、组织生活会对照检查发言材料(四个带头).docx
- 镇党委副书记关于2024年度民主生活会个人对照查摆剖析材料.docx
- 办公室2024年度工作总结和2025年工作计划.docx
- 党组书记2024年度专题民主生活会对照检查发言材料(四个带头).docx
- 区委宣传部部长2024年度民主生活会“四个带头”个人对照检查材料.docx
- 镇党委关于2024年度民主生活会班子对照查摆剖析材料.docx
- 办公室主任2024年度个人工作总结.docx
- XX单位2024年 度领导班子民主生活会对照检查材料.docx
文档评论(0)