在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
SparkSQL 结构化数据处理流程及原理是什么?Spark SQL 可以使用现有的Hive元存储、SerDes 和 UDF。它可以使用 JDBC/ODBC 连接到现有的 BI 工具。有了 Spark SQL,用户可以编写 SQL 风格的查询。
Spark SQL 是 Spark 生态系统中处理结构化格式数据的模块。它在内部使用 Spark Core API 进行处理,但对用户的使用进行了抽象。这篇文章深入浅出地告诉你 Spark SQL 3.x 的新内容。
这对于精通结构化查询语言或 SQL 的广大用户群体来说,基本上是很有帮助的。用户也将能够在结构化数据上编写交互式和临时性的查询。Spark SQL 弥补了弹性分布式数据集RDD和关系表之间的差距。RDD 是 Spark 的基本数据结构。它将数据作为分布式对象存储在适合并行处理的节点集群中。RDD 很适合底层处理,但在运行时很难调试,程序员不能自动推断模式schema。另外,RDD 没有内置的优化功能。Spark SQL 提供了数据帧DataFrame和数据集来解决这些问题。
Spark SQL 可以使用现有的 Hive 元存储、SerDes 和 UDF。它可以使用 JDBC/ODBC 连接到现有的 BI 工具。
数据源
大数据处理通常需要处理不同的文件类型和数据源(关系型和非关系型)的能力。Spark SQL 支持一个统一的数据帧接口来处理不同类型的源,如下所示。
文件:
CSV
Text
JSON
XML
JDBC/ODBC:
Postgres
带模式的文件:
AVRO
Parquet
Hive 表:
Spark SQL 也支持读写存储在 Apache Hive 中的数据。
通过数据帧,用户可以无缝地读取这些多样化的数据源,并对其进行转换/连接。
Spark SQL 3.x 的新内容
在以前的版本中(Spark 2.x),查询计划是基于启发式规则和成本估算的。从解析到逻辑和物理查询计划,最后到优化的过程是连续的。这些版本对转换和行动的运行时特性几乎没有可见性。因此,由于以下原因,查询计划是次优的:
1、缺失和过时的统计数据
2、次优的启发式方法
3、错误的成本估计
Spark 3.x 通过使用运行时数据来迭代改进查询计划和优化,增强了这个过程。前一阶段的运行时统计数据被用来优化后续阶段的查询计划。这里有一个反馈回路,有助于重新规划和重新优化执行计划。

自适应查询执行(AQE)
查询被改变为逻辑计划,最后变成物理计划。这里的概念是“重新优化”。它利用前一阶段的可用数据,为后续阶段重新优化。正因为如此,整个查询的执行要快得多。
动态合并“洗牌”分区
Spark 在“洗牌shuffle”操作后确定最佳的分区数量。在 AQE 中,Spark 使用默认的分区数,即 200 个。这可以通过配置来启用。
动态切换连接策略
广播哈希是最好的连接操作。如果其中一个数据集很小,Spark 可以动态地切换到广播连接,而不是在网络上“洗牌”大量的数据。
动态优化倾斜连接
如果数据分布不均匀,数据会出现倾斜,会有一些大的分区。这些分区占用了大量的时间。Spark 3.x 通过将大分区分割成多个小分区来进行优化。
其他改进措施
此外,Spark SQL 3.x还支持以下内容。
动态分区修剪
3.x 将只读取基于其中一个表的值的相关分区。这消除了解析大表的需要。
连接提示
如果用户对数据有了解,这允许用户指定要使用的连接策略。这增强了查询的执行过程。
兼容 ANSI SQL
在兼容 Hive 的早期版本的 Spark 中,我们可以在查询中使用某些关键词,这样做是完全可行的。然而,这在 Spark SQL 3 中是不允许的,因为它有完整的 ANSI SQL 支持。例如,“将字符串转换为整数”会在运行时产生异常。它还支持保留关键字。
较新的 Hadoop、Java 和 Scala 版本
从 Spark 3.0 开始,支持 Java 11 和 Scala 2.12。 Java 11 具有更好的原生协调和垃圾校正,从而带来更好的性能。 Scala 2.12 利用了 Java 8 的新特性,优于 2.11。
Spark 3.x 提供了这些现成的有用功能,而无需开发人员操心。这将显着提高 Spark 的整体性能。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据是什么?与数据之间有什么区别?
大数据是什么?从字面的理解我可以认为他是大量的数据,而在计算机网络领域则将大数据定义为需要更新处理模式才能具有更强的决策力,洞察发现力和流程优化能力来适应海量,高增长了和多样化的薪资资产。因此大数据不仅仅是在数据量的变化,好包括其增长速度以及多样化的特性。
15277
2019-06-06 15:48:59
云计算大数据在线培训班靠不靠谱?
如今,云计算和大数据已经成为了未来的发展趋势。在时代潮流的要求下,不少人纷纷想进入云计算大数据行业,然而自学难度大、时间长、效率低,那么到底应该如何进入该行业呢?参加云计算大数据在线培训班可以说是一个有效的方法。然而,也有不少人会担心,云计算大数据在线培训班靠不靠谱?下面小编将从课程内容、师资力量和教学方式,为大家全面分析一下云计算大数据在线培训班。
8022
2019-12-30 21:18:38
云计算的基本特征是什么?云计算的七大特征总结
云计算的基本特征是什么?在回答这个问题之前,我们先来看看云计算的概念。云计算简单来说,就是不被地域所限制,向用户提供实现大规模计算的软件服务。因此云计算的基本特征主要要以下几点,即资源池化、快速弹性、灵活便捷性、可靠性强、高性价比和可扩展性。接下来小编将为大家依次总结云计算的七大特征,大家一起来看看吧!
16405
2020-01-11 16:01:15
物联网怎么保护云计算安全?
全球应用的物联网设备已经达到数十亿台,且数量不断增加。在开发和部署的许多物联网设备却缺乏关键的安全功能为黑客和僵尸网络的目标。没有适当的安全措施,物联网设备会导致灾难性事件。如何解决这些问题呢?
6232
2020-03-23 17:51:20
大数据岗位基础要求有哪些?
大数据岗位基础要求:谈起大数据,当然少不了分析软件,这应该是做大数据工作的基础,但市场上有很多各种各样的分析软件,如果没有过人的经验,真的很难找到适合自己或者适合企业的。笔者通过各大企业对大数据相关行业的职位要求,归纳出如下要点:
6875
2020-07-06 14:22:39
