【大数据面试题】024 Spark 3 升级了些什么?

news/2025/4/1 11:08:15/

一步一个脚印,一天一道面试题

近期工作时有用到 Spark 2 升级 Spark 3,解决问题的情况。
任务原本是运行 4 小时后报错,升级到 Spark 3后,任务运行 1 小时,并且运行成功
平时用 Spark 3 用的也多,就当记录一下。

Spark 3 升级特点

一、自适应优化查询 Adaptive Query Execution

Spark 计算时,会根据不同的情况启用不同的方法。
比如在针对 join 操作时,默认使用 SortMergeJoin,而如果是大表 join 小表,则使用 BroadcastHashJoin 效果更好。
在 Spark 2 中,获取数据源等信息少,往往不能根据实际情况使用最好的计算方法。

Spark 3 中,能 动态获取执行信息,进而根据实际情况使用最好的计算方法,这会明显提升运行速度

二、谓词下推 Predicate PushDown

谓词下推是数据查询的重要优化。其重要原理是在一层层的处理中,把谓词下推到更低层,更早的做数据过滤,能明显提高程序执行效率。

谓词: Where 里的各种条件:大于 >,小于 <,等于 =,between 等过滤语句,就叫谓词
下推: 把对应谓词(各种过滤条件)放到更低的层级,提早过滤。

下面举例说明:
1.将谓词下推至数据源

select a.col1, b.col2 from a 
join b 
on a.id = b.id
where a.col1 = 'something'

1.如果是 Parquet 这样的列式存储文件格式,会直接在文件中过滤读入到 Spark 中,而不是先读入到 Spark,再过滤
2.先where过滤问题后,再进行join过滤,而不是先join,再where 过滤。

提早的进行过滤,减少数据量,就能提高程序的运行效率。
比如我们使用 Spark 数据量大时容易遇到 shuffle 时的报错,想想如果在 shuffle 前就能减少一部分数据量,是不是会好许多呢?

三、一点自己的零碎总结

1.用 Spark 3 就是会比 Spark 2 快很多,研究下来,就是 Spark 3 自动做的优化多了很多。
2.由于第一点,我们不会需要那么多加大资源才能解决的报错,节省了一些宝贵的集群资源
3.升级对更多使用 Spark SQL的程序来说,代码改动量很小。

我是近未来,祝你变得更强!


http://www.ppmy.cn/news/1435311.html

相关文章

Python_偏函数

什么是Python中的偏函数 Python中的偏函数是指通过固定函数的部分参数来创建一个新的函数。这个新函数称为偏函数&#xff0c;它可以用来简化函数调用&#xff0c;特别是当需要多次使用相同的函数但部分参数保持不变时。Python标准库中的functools模块提供了partial函数来实现…

1 Java 泛型

概述 泛型&#xff0c;即“参数化类型”。一提到参数&#xff0c;最熟悉的就是定义方法时有形参&#xff0c;然后调用此方法时传递实参。那么参数化类型怎么理解呢&#xff1f;顾名思义&#xff0c;就是将类型由原来的具体的类型参数化&#xff0c;类似于方法中的变量参数&…

Linux quotaoff命令教程:如何关闭文件系统的配额(附实例详解和注意事项)

Linux quotaoff命令介绍 quotaoff命令用于关闭指定挂载点的文件系统配额。当配额开启时&#xff0c;超过配额的用户将无法再向文件系统写入更多数据&#xff0c;除非他们删除一些现有文件或被授予额外的配额。 Linux quotaoff命令适用的Linux版本 quotaoff命令在大多数Linux…

基于链表的滑动中值滤波器实现思路

总之&#xff0c;先假设底层的链表已经实现好了&#xff0c;反正很简单。 原理 基本上&#xff0c;中值滤波&#xff0c;或者说滑动中值滤波&#xff0c;需要做三件事&#xff1a; 在新数据添加到窗口的同时&#xff0c;将最旧的数据删除&#xff1b;对窗口中的数据排序&…

架构师系列-Nginx、OpenResty(三)- 负载均衡配置

Nginx负载均衡 负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求&#xff0c;一个最基本的upstream模块是这样的&#xff0c;模块内的server是服务器列表&#xff1a; #动态服务器组 upstream dynamicserver {server 172.16.44.47:9001; #…

自己在hadoop中会输错的命令

&#xff08;01&#xff09; hdfs dfsadmin -report -live 仅查看集群在线节点的基本信息可以使用&#xff1a; &#xff08;02&#xff09; hdfs dfs mkdir -C /Tipdm/Hadoop 使用这个命令可以在hdfs上面创建一个 /Tipdm/Hadoop&#xff0c;自己错误的点就是&#xff1a;-C&…

作为前端工程师如何SEO优化

什么是SEO&#xff1f; SEO&#xff0c;全称Search Engine Optimization&#xff0c;即搜索引擎优化。它是一种利用搜索引擎的规则来提高网站在搜索引擎内自然排名的方式&#xff0c;从而吸引更多的用户访问网站&#xff0c;提高网站的访问量&#xff0c;进而提升网站的销售能…

人工智能技术概述_3.机器学习

1.机器学习定义 广义上来说&#xff0c;机器学习指专门研究计算机怎么模拟或实现人类的学习行为以获取新的知识或技能的学科&#xff0c;使计算机重新组织已有的组织结构并不断改善自身的性能。更加精确地说&#xff0c;一个机器学习的程序就是可以从经验数据E中对任务T进行学习…