gpt4 book ai didi

pyspark - 如何在 Databricks 中使用 OPTIMIZE ZORDER BY

转载 作者:行者123 更新时间:2023-12-05 03:19:42 28 4
gpt4 key购买 nike

我有两个数据框(来自 delta lake 表)通过 id 列进行左连接。

sd1, sd2

%sql
select
a.columnA,
b.columnB,
from sd1 a
left outer join sd2 b
on a.id = b.id


问题是我的查询需要很长时间,寻找改进结果的方法我找到了 OPTIMIZE ZORDER BY Youtube video

根据视频,如果它们将成为 where 条件的一部分,则在对列进行排序时似乎很有用。

但由于这两个数据框在连接条件中使用了 id,因此对该列进行排序会不会很有趣?

spark.sql(f'OPTIMIZE delta.`{sd1_delta_table_path}` ZORDER BY (id)')

我脑海中遵循的逻辑是,如果我们首先对该列进行排序,那么寻找它们进行匹配所需的时间就会更少。这是正确的吗?

提前致谢

最佳答案

OPTIMIZE ZORDER 将相关数据放在一起可能会有所帮助,但它的用处可能取决于用于 ID 列的数据类型。 OPTIMIZE ZORDER 依赖于 data skipping只为您提供最小和最大统计信息的功能,但当您的连接范围很大时可能没有用。

您也可以tune a file sizes , 以避免扫描太多较小的文件。

但根据我的个人经验,对于连接,bloom filters提供更好的性能,因为它们允许比数据跳过更有效地跳过文件。只需在 ID 列上构建布隆过滤器...

关于pyspark - 如何在 Databricks 中使用 OPTIMIZE ZORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73375850/

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