gpt4 book ai didi

scala - Spark SQL 中的 Where 子句与 join 子句

转载 作者:行者123 更新时间:2023-12-04 19:49:16 25 4
gpt4 key购买 nike

我正在编写一个查询来从表 A 中获取满足表 B 中记录条件的记录。例如:

表A是:

Name           Profession        City 
John Engineer Palo Alto
Jack Doctor SF

表 B 是:
Profession     City      NewJobOffer
Engineer SF Yes

我有兴趣得到表 c:
Name   Profession  City NewJobOffer
Jack Engineer SF Yes

我可以使用 where 子句或 join 查询以两种方式执行此操作,哪一种更快,为什么在 spark sql 中?
比较列的 where 子句添加选择那些记录或连接列本身,哪个更好?

最佳答案

最好在 WHERE 子句中提供过滤器。这两个表达式是不等价的。

当您在 JOIN 子句中提供过滤时,您将检索两个数据源,然后在指定条件下加入。由于连接首先通过混洗(在执行者之间重新分配)数据来完成,因此您将混洗大量数据。

当您在 WHERE 子句中提供过滤器时,Spark 可以识别它,您将过滤并连接两个数据源。通过这种方式,您将洗牌较少的数据。更重要的是,通过这种方式,Spark 还可以做一个过滤下推,在数据源级别过滤数据,这意味着网络压力更小。

关于scala - Spark SQL 中的 Where 子句与 join 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38901027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com