当前位置: 首页 > news >正文

卫辉市住房和城市建设局网站建设网站商城后台系统

卫辉市住房和城市建设局网站,建设网站商城后台系统,湖南十大传媒公司,做电影网站用什么虚拟主机文章目录 每日一句正能量第4章 Spark SQL结构化数据文件处理章节概要4.1 Spark SQL概述4.1.1 Spark SQL的简介4.1.2 Spark SQL架构 每日一句正能量 世事洞明皆学问,人情练达即文章。 第4章 Spark SQL结构化数据文件处理 章节概要 在很多情况下,开发工程…

文章目录

  • 每日一句正能量
  • 第4章 Spark SQL结构化数据文件处理
  • 章节概要
    • 4.1 Spark SQL概述
      • 4.1.1 Spark SQL的简介
      • 4.1.2 Spark SQL架构

在这里插入图片描述

每日一句正能量

世事洞明皆学问,人情练达即文章。

第4章 Spark SQL结构化数据文件处理

章节概要

在很多情况下,开发工程师并不了解Scala语言,也不了解Spark常用API,但又非常想要使用Spark框架提供的强大的数据分析能力。Spark的开发工程师们考虑到了这个问题,利用SQL语言的语法简洁、学习门槛低以及在编程语言普及程度和流行程度高等诸多优势,从而开发了Spark SQL模块,通过Spark SQL,开发人员能够通过使用SQL语句,实现对结构化数据的处理。本章将针对Spark SQL的基本原理、使用方式进行详细讲解。

4.1 Spark SQL概述

Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象结构叫做DataFrame的数据模型(即带有Schema信息的RDD),Spark SQL作为分布式SQL查询引擎,让用户可以通过SQL、DataFrames API和Datasets API三种方式实现对结构化数据的处理。但无论是哪种API或者是编程语言,它们都是基于同样的执行引擎,因此可以在不同的API之间进行随意切换。

4.1.1 Spark SQL的简介

Spark SQL的前身是Shark,Shark最初是伯克利实验室Spark生态系统的组件之一,其运行在Spark系统之上,Shark重用了Hive的工作机制,并直接继承了Hive的各个组件,但由于Shark过于依赖Hive,因此在版本迭代时很难添加新的优化策略,从而限制了Spark的发展,在2014年,Shark停止了维护,转向Spark SQL开发。Spark SQL主要提供了以下三个功能:

  • Spark SQL可以从各种结构化数据源(例如JSON、Hive、Parquet等)中读取数据,进行数据分析。
  • Spark SQL包含行业标准的JDBC和ODBC连接方式,因此它不局限于在Spark程序内使用SQL语句进行查询。
  • Spark SQL可以无缝地将SQL查询与Spark程序进行结合,它能够将结构化数据作为Spark中的分布式数据集(RDD)进行查询,在Python、Scala和Java中均集成了相关API,这种紧密的集成方式能够轻松地运行SQL查询以及复杂的分析算法。

总体来说,Spark SQL支持多种数据源的查询和加载,兼容HQL、可以使用JDBC/ODBC的连接方式来执行SQL语句,它为Spark框架在结构化数据分析方面提供重要技术支持。

4.1.2 Spark SQL架构

Spark SQL兼容Hive,这是因为Spark SQL架构与Hive底层结构相似,Spark SQL复用了Hive提供的元数据仓库(Metastore) ,HiveQL、用户自定义函数(UDF)以及序列化和反序列工具(SerDes)。

Spark SQL架构与Hive架构相比,把底层的MapReduce执行引擎更改为Spark,还修改了Catalyst优化器,Spark SQL快速的计算效率得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给Spark SQL的Catalyst优化器进行负责和管理。
在这里插入图片描述
从图可以看出,Spark SQL架构与Hive架构相比,除了把底层的MapReduce执行引擎更改为Spark,还修改了Catalyst优化器,Spark SQL快速的计算效率得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给Spark SQL的Catalyst优化器进行负责和管理。

Catalyst优化器是一个新的可扩展的查询优化器,它是基于Scala函数式编程结构,另外,Spark作为开源项目,外部开发人员可以针对项目需求自行扩展Catalyst优化器的功能。
Spark要想很好地支持SQL,就需要完成解析(Parser)、优化(Optimizer)、执行(Execution)三大过程。Catalyst优化器在执行计划生成和优化的工作时候,它离不开自己内部的五大组件,具体介绍如下所示。.
在这里插入图片描述

  • SqlParse
    完成SQL语法解析功能,目前只提供了一个简单的SQL解析器。
  • Analyze
    主要完成绑定工作,将不同来源的Unresolved LogicalPlan和元数据进行绑定,生成Resolved LogicalPlan。
  • Optimizer
    对Resolved Lo;gicalPlan进行优化,生成OptimizedLogicalPlan。
  • Planner
    将LogicalPlan转换成PhysicalPlan。
  • CostModel
    主要根据过去的性能统计数据,选择最佳的物理执行计划。

在了解了上述组件的作用后,下面分步骤讲解Spark SQL工作流程。
在这里插入图片描述

  1. 在解析SQL语句之前,会创建SparkSession,涉及到表名、字段名称和字段类型的元数据都将保存在SessionCatalog中;
  2. 当调用SparkSession的sql()方法时就会使用SparkSqlParser进行解析SQL语句,解析过程中使用的ANTLR进行词法解析和语法解析;
  3. 使用Analyzer分析器绑定逻辑计划,在该阶段,Analyzer会使用Analyzer Rules,并结合SessionCatalog,对未绑定的逻辑计划进行解析,生成已绑定的逻辑计划;
  4. 使用Optimizer优化器优化逻辑计划,该优化器同样定义了一套规则(Rules),利用这些规则对逻辑计划和语句进行迭代处理;
  5. 使用SparkPlanner对优化后的逻辑计划进行转换,生成可以执行的物理计划SparkPlan;
  6. 使用QueryExecution执行物理计划,此时则调用SparkPlan的execute()方法,返回RDDs。

转载自:https://blog.csdn.net/u014727709/article/details/136033196
欢迎 👍点赞✍评论⭐收藏,欢迎指正

http://www.dtcms.com/a/475446.html

相关文章:

  • 网站建设合同报价做网站店铺装修的软件
  • RND1:目前最强的扩散LLM
  • 企业推广建站汕头最好的seo外包
  • 网站历史记录怎么恢复团风做网站
  • 《从HelloWorld到微服务架构Java编程的进化之路》
  • 有那个网站可以做报名链接的聊城网架公司
  • 学Java第三十六天--------内部类
  • 开源php建站系统沙井建网站
  • 温州网站建设对比网站系统开发怎么做
  • 专门做旅游攻略的网站有哪些团购火锅自助网站建设
  • 临沂网站开发技术员广州引流推广公司
  • 承包酒席可以做网站吗廊坊百度关键词推广
  • 风景区网站代码有人做几个蝎子养殖门户网站
  • 毕业设计做网站有什么好处网站后台英文
  • php网站标题修改网站建设需要的技术人员
  • 【大数据开发实践】Kafka REST Proxy~无缝集成 Kafka
  • 做网站欢迎页什么意思阿里云搜索引擎
  • 广东真空共晶炉公司
  • wordpress网站发布文章做网站的创始人
  • 上海市建设考核中心网站无锡企业网站
  • 【计算机组成原理】第五章:中央处理器
  • ICT 数字测试原理 20 - -VCL中预处理的过程
  • 房地产网站建设的目的淘宝客网站怎么做推广计划
  • 江西网站设计哪家强ai绘画软件免费
  • 公司网站首页的图片怎么做电脑网页尺寸一般是多少
  • 企业网站 数据库设计网站开发老板排名
  • 开放平台直播优化课程体系
  • 建设英文商城网站深圳网站优化公司
  • 2.3变量与常量
  • 使用okhttp3发送请求