小编Ana*_*les的帖子

如何在 Databricks 中使用 OPTIMIZE ZORDER BY

我有两个数据框(来自三角洲湖表),它们通过 id 列进行左连接。

SD1、SD2

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

   
Run Code Online (Sandbox Code Playgroud)

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

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

但由于两个数据帧在连接条件中使用 id,因此对该列进行排序是否有趣?

spark.sql(f'OPTIMIZE delta.`{sd1_delta_table_path}` ZORDER BY (id)')
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

pyspark databricks azure-databricks delta-lake databricks-sql

5
推荐指数
1
解决办法
6659
查看次数