iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Apache Spark SQL入门及实践的实例分析
  • 564
分享到

Apache Spark SQL入门及实践的实例分析

2023-06-02 21:06:06 564人浏览 安东尼
摘要

Apache spark sql入门及实践的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Apache SparkSQL是一个重要的Spark模块,我们

Apache spark sql入门及实践的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Apache SparkSQL是一个重要的Spark模块,我们可以使用python、Java和Scala中的DataFrame和DataSet简化结构化数据处理流程,该过程从企业收集数据并形成分布式数据集合。使用Spark SQL,我们可以从Spark程序内部通过标准数据库连接器(JDBC/ODBC)连接到Spark SQL外部工具查询数据。

下面介绍了Spark SQL体系结构组件,比如DataSets和DataFrames;在Apache Spark中使用Spark SQL以及其优劣等内容。

Apache Spark SQL教程

Spark SQL简介

Apache SparkSQL是Spark中结构化数据处理模块。使用Spark SQL提供的接口,我们可以获得有关数据结构和执行计算等信息。有了这些信息,我们就可以在Apache Spark中实现优化,通过DataFrame和Dataset api等方式与Spark SQL交互。无论使用哪种API或语言表达计算,在计算结果时都使用相同的执行引擎。因此,用户可以容易地在不同API间切换。

在Apache Spark SQL中,我们可以通过四种方式使用结构化和半结构化数据:

  • 为了简化结构化数据使用,它提供了Python,Java和Scala中的DataFrame抽象,提供了很好的优化技术。

  • 可读取和写入多种格式数据,比如JSONHive Tables和Parquet。

  • 使用SQL,我们可以从Spark程序内外部工具中查询数据,外部工具通过标准数据库连接器(JDBC/ODBC)连接到Spark SQL。

  • 使用Spark SQL的最佳方法是在Spark应用程序中,这使我们能够加载数据并使用SQL进行查询。同时,我们还可以将它与Python、Java或Scala中的“常规”程序代码结合使用。

SQL从其他编程语言运行的结果将是数据集或数据框架,与SQL接口的交互使用命令行或JDBC/ODBC进行。

Spark SQL DataFrames

RDD存在一些局限性,使用结构化数据没有内置的优化引擎,开发人员必须优化每个RDD。此外,没有规定处理结构化数据。Spark SQL中的DataFrame克服了RDD限制。Spark DataFrame是Spark 1.3版本,它是按命名列排序的分布式数据集。从概念来看,它等同于关系数据库中的表或R/Python中的数据框架,我们可以使用以下方法创建DataFrame:

  • 结构化数据文件

  • Hive中的表格

  • 外部数据库

  • 使用现有的RDD

Spark SQL数据集

Spark Dataset是Spark 1.6版本中添加的接口,它是一个分布式数据集合。我们可以用JVM对象创建数据集,之后使用功能转换(映射,过滤器等)对其进行操作,使用Scla和Java访问数据集API。Python不支持Dataset API,但由于Python的动态特性,可以使用Dataset API的许多好处,R也如此。

Spark Catalyst Optimizer

Spark SQL使用的优化器是Catalyst,它优化了用Spark SQL和DataFrame DSL编写的所有查询。优化器帮助我们以比RDD对应方式更快的速度运行查询,这提高了系统性能。

Spark Catalyst是一个基于规则的系统构建库,每条规则都侧重于具体优化。例如,ConstantFolding的重点是从查询中消除常量表达式。

 Apache Spark SQL的使用

  • 执行SQL查询;

  • 我们可以使用SparkSQL从existingHive安装中读取数据;

  • 当我们在另一种编程语言中运行SQL时,我们将得到结果作为数据集/数据框架。

由Spark SQL定义的函数

  • 内置功能:提供内置函数处理列值,可以使用以下命令访问内置函数:

Import org.apache.spark.sql.functions
  • 用户定义函数(UDF):UDF允许根据Scala规则创建用户定义函数。

  • 聚合函数:它们对一组行进行操作,并计算每组的返回值。

  • 窗口化聚合(windows):对一组行进行操作,并为组中的每一行计算返回值。

Spark SQL的优点

在本节中,我们将讨论Apache Spark SQL的各种优点:

1、集成

Apache Spark SQL将SQL查询与Spark程序集成。在Spark SQL的帮助下,我们可以将结构化数据作为分布式数据集(RDD)查询,可以使用Spark SQL紧密集成属性与复杂的分析算法一起运行SQL查询。

2、统一数据访问

使用Spark SQL,我们可以加载和查询不同来源数据。Schema-RDD允许单个接口高效处理结构化数据。例如,Apache Hive tables, parquet files, and jsON files.

3、高兼容性

在Apache Spark SQL中,我们可以在现有仓库上运行未修改的Hive查询,允许使用Hive前端和MetaStore完全兼容现有Hive数据,查询和UDF。

4、标准连接

可通过JDBC或ODBC连接,包括具有行业标准JDBC和ODBC连接的服务器模式。

5、可扩展性

为了支持查询容错和大型作业,它利用了RDD模型,使用相同的引擎进行交互式查询。

6、性能优化

Spark SQL中的查询优化引擎在整个计划中选择最佳的执行计划。

7、用于批处理Hive表

使用Spark SQL快速批处理Hive表。

Spark SQL的缺点

除了这些功能外,Spark SQL还有一些缺点:

  • 不支持UNIOn类型;

  • 无法创建或读取包含union字段的表;

  • 插入超大Varchar类型不提示错误,即使插入值超出大小限制,也不会发生错误。如果从Hive读取,则相同的数据将截断,但如果从Spark读取则不会截断。SparkSQL会将varchar视为字符串,这意味着没有大小限制;

  • 不支持Transactional 表;

  • Spark SQL不支持Hive事务

  • 不支持char类型:无法阅读或创建包含此类字段的表格;

  • Avro表不支持时间戳

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: Apache Spark SQL入门及实践的实例分析

本文链接: https://www.lsjlt.com/news/231310.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Apache Spark SQL入门及实践的实例分析
    Apache Spark SQL入门及实践的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Apache SparkSQL是一个重要的Spark模块,我们...
    99+
    2023-06-02
  • SQL Server的入门实战分析
    本篇内容介绍了“SQL Server的入门实战分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!环境信息:...
    99+
    2024-04-02
  • Spark-Sql的示例分析
    这篇文章主要介绍Spark-Sql的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SparkSQL运行架构Spark SQL对SQL语句的处理,首先会将SQL语句进行解析(Parse),然后形成一个Tree,...
    99+
    2023-06-21
  • Elasticsearch入门实例分析
    这篇文章主要介绍“Elasticsearch入门实例分析”,在日常操作中,相信很多人在Elasticsearch入门实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Elasticsearch入门实例分析...
    99+
    2023-06-05
  • SpringMVC入门实例分析
    今天小编给大家分享一下SpringMVC入门实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • HTML入门实例分析
    这篇文章主要介绍“HTML入门实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML入门实例分析”文章能帮助大家解决问题。 HTML是英文Hyper Te...
    99+
    2024-04-02
  • flash away3D入门实例分析
    本文小编为大家详细介绍“flash away3D入门实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“flash away3D入门实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • CTF AWD入门实例分析
    这篇文章主要介绍了CTF AWD入门实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CTF AWD入门实例分析文章都会有所收获,下面我们一起来看看吧。引文AWD赛制是一种网络安全竞赛的...
    99+
    2023-07-04
  • Spark SQL数据加载和保存的实例分析
    今天就跟大家聊聊有关Spark SQL数据加载和保存的实例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、前置知识详解 Spark SQL重要...
    99+
    2024-04-02
  • Mybatis的SQL注入实例分析
    本文小编为大家详细介绍“Mybatis的SQL注入实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis的SQL注入实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言MyBatis3提供了...
    99+
    2023-06-29
  • 容器Docker入门实例分析
    这篇文章主要讲解了“容器Docker入门实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“容器Docker入门实例分析”吧!一、概述1.1 基本概念:d...
    99+
    2024-04-02
  • javascript入门实例代码分析
    这篇文章主要介绍“javascript入门实例代码分析”,在日常操作中,相信很多人在javascript入门实例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java...
    99+
    2024-04-02
  • JUnit5基础入门实例分析
    这篇“JUnit5基础入门实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JUnit5基础入门实例分析”文章吧。设计哲...
    99+
    2023-06-17
  • Vue新手入门实例分析
    本篇内容介绍了“Vue新手入门实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! Vue实例和模板语法<body>...
    99+
    2023-06-27
  • Rollup入门实例代码分析
    这篇文章主要介绍了Rollup入门实例代码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Rollup入门实例代码分析文章都会有所收获,下面我们一起来看看吧。Rollup介绍及使用1、Rollup 概述仅仅是...
    99+
    2023-07-05
  • python入门代码实例分析
    这篇文章主要介绍“python入门代码实例分析”,在日常操作中,相信很多人在python入门代码实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python入门代码实例...
    99+
    2024-04-02
  • Docker入门安装实例分析
    本文小编为大家详细介绍“Docker入门安装实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Docker入门安装实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。do...
    99+
    2024-04-02
  • Java入门数组实例分析
    今天小编给大家分享一下Java入门数组实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。认识数组数组的定义数组是相同类型...
    99+
    2023-06-30
  • Spark Streaming+Spark SQL的数据倾斜示例分析
    这篇文章将为大家详细讲解有关Spark Streaming+Spark SQL的数据倾斜示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.现象 三台机器都有产生executor,每台...
    99+
    2023-06-03
  • 如何实现Apache Hive 和Spark的对比分析
    本篇文章给大家分享的是有关如何实现Apache Hive 和Spark的对比分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Hive和Spa...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作