网易首页 > 网易号 > 正文 申请入驻

用 Spark SQL 进行结构化数据处理 | Linux 中国

0
分享至

导读:Spark SQL 是 Spark 生态系统中处理结构化格式数据的模块。它在内部使用 Spark Core API 进行处理,但对用户的使用进行了抽象。这篇文章深入浅出地告诉你 Spark SQL 3.x 的新内容。

本文字数:2257,阅读时长大约: 3分钟

有了 Spark SQL,用户可以编写 SQL 风格的查询。这对于精通结构化查询语言或 SQL 的广大用户群体来说,基本上是很有帮助的。用户也将能够在结构化数据上编写交互式和临时性的查询。Spark SQL 弥补了弹性分布式数据集(resilient distributed data sets)(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:

◈ MySQL

◈ Oracle

◈ Postgres

◈ 带模式的文件:

◈ AVRO

◈ Parquet

◈ Hive 表:

◈ Spark SQL 也支持读写存储在 Apache Hive 中的数据。

通过数据帧,用户可以无缝地读取这些多样化的数据源,并对其进行转换/连接。

Spark SQL 3.x 的新内容

在以前的版本中(Spark 2.x),查询计划是基于启发式规则和成本估算的。从解析到逻辑和物理查询计划,最后到优化的过程是连续的。这些版本对转换和行动的运行时特性几乎没有可见性。因此,由于以下原因,查询计划是次优的:

◈ 缺失和过时的统计数据

◈ 次优的启发式方法

◈ 错误的成本估计

Spark 3.x 通过使用运行时数据来迭代改进查询计划和优化,增强了这个过程。前一阶段的运行时统计数据被用来优化后续阶段的查询计划。这里有一个反馈回路,有助于重新规划和重新优化执行计划。

Figure 1: Query planning

自适应查询执行(AQE)

查询被改变为逻辑计划,最后变成物理计划。这里的概念是“重新优化”。它利用前一阶段的可用数据,为后续阶段重新优化。正因为如此,整个查询的执行要快得多。

AQE 可以通过设置 SQL 配置来启用,如下所示(Spark 3.0 中默认为 false):

  1. spark.conf.set(“spark.sql.adaptive.enabled”,true)

动态合并“洗牌”分区

Spark 在“洗牌(shuffle)”操作后确定最佳的分区数量。在 AQE 中,Spark 使用默认的分区数,即 200 个。这可以通过配置来启用。

  1. spark.conf.set(“spark.sql.adaptive.coalescePartitions.enabled”,true)

动态切换连接策略

广播哈希是最好的连接操作。如果其中一个数据集很小,Spark 可以动态地切换到广播连接,而不是在网络上“洗牌”大量的数据。

动态优化倾斜连接

如果数据分布不均匀,数据会出现倾斜,会有一些大的分区。这些分区占用了大量的时间。Spark 3.x 通过将大分区分割成多个小分区来进行优化。这可以通过设置来启用:

  1. spark.conf.set(“spark.sql.adaptive.skewJoin.enabled”,true)

Figure 2: Performance improvement in Spark 3.x (Source: Databricks)

其他改进措施

此外,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 的整体性能。

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

LCTT 译者 :geekpi

翻译: 1692.5 篇

贡献: 3133 天

2013-10-25

2022-05-24

https://linux.cn/lctt/geekpi

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
再次让全世界失望!美联储拒绝降息,美元收割已骑虎难下

再次让全世界失望!美联储拒绝降息,美元收割已骑虎难下

北向财经
2024-06-16 15:10:09
乌情报总局局长:俄最新型S-500防空系统部分部件已运抵克里米亚

乌情报总局局长:俄最新型S-500防空系统部分部件已运抵克里米亚

红星新闻
2024-06-15 20:16:15
网友分享美国工厂打工现状,评论区破防,拒绝资本主义的糖衣炮弹

网友分享美国工厂打工现状,评论区破防,拒绝资本主义的糖衣炮弹

眼光很亮
2024-06-16 09:00:09
身高191体重180火遍全网的马丁-亚当:上届欧洲杯我在家喝酒

身高191体重180火遍全网的马丁-亚当:上届欧洲杯我在家喝酒

直播吧
2024-06-16 17:34:10
保护自己能量最好的方式

保护自己能量最好的方式

洞见
2024-06-14 22:27:05
国运来了挡都挡不住?俄乌战争最起码给中国又争取了五年时间

国运来了挡都挡不住?俄乌战争最起码给中国又争取了五年时间

曾经年少
2024-03-05 11:38:53
25万人参加!法国爆发大规模游行,反对极右翼崛起!马克龙:正处于非常严峻时刻!股市已蒸发1.1万亿元

25万人参加!法国爆发大规模游行,反对极右翼崛起!马克龙:正处于非常严峻时刻!股市已蒸发1.1万亿元

每日经济新闻
2024-06-16 13:44:10
22岁小伙雇45岁保姆后,整天不出门在家过二人世界

22岁小伙雇45岁保姆后,整天不出门在家过二人世界

牛城王小帅
2024-06-12 13:48:47
过“紧日子”的地方政府,已经把手伸进老百姓的口袋里去了

过“紧日子”的地方政府,已经把手伸进老百姓的口袋里去了

浮事记
2024-06-03 11:48:21
小S精神状态堪忧!假摔真哭大闹录影现场,搭档慌乱嘉宾傻眼

小S精神状态堪忧!假摔真哭大闹录影现场,搭档慌乱嘉宾傻眼

萌神木木
2024-06-16 12:25:55
13年前,冲动买了10万个比特币的新东方老师,如今过得怎样了?

13年前,冲动买了10万个比特币的新东方老师,如今过得怎样了?

百年历史老号
2024-06-16 06:55:46
G7背书,再用瑞士峰会推高,之后F-16进入,反攻就开始了

G7背书,再用瑞士峰会推高,之后F-16进入,反攻就开始了

邵旭峰域
2024-06-15 11:59:20
广东假活佛吴泽衡落网,18名女弟子道出幕后真相,令人咋舌

广东假活佛吴泽衡落网,18名女弟子道出幕后真相,令人咋舌

莉雅细细谈
2024-06-14 20:52:54
破案了!龚翔宇痛哭真相大白,知情人揭内情,球迷错怪教练蔡斌了

破案了!龚翔宇痛哭真相大白,知情人揭内情,球迷错怪教练蔡斌了

娱记掌门
2024-06-16 21:52:03
曝45岁伏明霞离婚,净身出户原因揭晓,71岁百亿丈夫只说6个字

曝45岁伏明霞离婚,净身出户原因揭晓,71岁百亿丈夫只说6个字

深度知局
2024-05-20 19:25:53
A股:股市或将大幅下跌

A股:股市或将大幅下跌

生活中的栗子
2024-06-16 12:37:08
106国参加瑞士和会:中方拒绝参会,与世界文明为伍,勿忘雅尔塔

106国参加瑞士和会:中方拒绝参会,与世界文明为伍,勿忘雅尔塔

大风文字
2024-06-03 10:27:47
从南到北空袭加沙后,以色列:实行“战术暂停”!加沙民众冒死搜寻遗体,不少人只能吃树叶

从南到北空袭加沙后,以色列:实行“战术暂停”!加沙民众冒死搜寻遗体,不少人只能吃树叶

每日经济新闻
2024-06-16 17:19:15
广州城中村简直是炼狱

广州城中村简直是炼狱

悠闲葡萄
2024-06-16 14:12:31
赛过西施类型美女(118)

赛过西施类型美女(118)

娱记掌门
2024-06-11 17:57:52
2024-06-17 02:02:44
Linux
Linux
Linux 中国开源社区
8016文章数 73123关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

南方医院回应教师因救人迟到:教学差错是最轻档处理

头条要闻

南方医院回应教师因救人迟到:教学差错是最轻档处理

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

本地
旅游
时尚
艺术
公开课

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

旅游要闻

@毕业生,江苏这些景区可享免票或优惠

伊姐周日热推:电影《沙漏》;动漫《眷思量2》......

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版