У меня две таблицы сгруппированы по одним и тем же столбцам, но при объединении обеих таблиц по кластеризованным столбцам план выполнения показывает этапы обмена и сортировки.
Обе таблицы объединены в один и тот же столбец (key_column),Обе таблицы сжаты или сжаты, а таблица A разбита на разделы и сгруппирована, а таблица B сгруппирована в одну и ту же колонку.
Я хочу избежать шага сортировки и обмена из моего плана, и в соответствии с документацией, которую должна иметь таблица с сечением.Избегали как сортировки, так и обмена.
Я даже пробовал с нижеуказанными свойствами улья:
spark.sql('set spark.sql.orc.filterPushdown=true')
spark.sql('set hive.optimize.bucketmapjoin = true')
spark.sql('set hive.optimize.bucketmapjoin.sortedmerge = true')
spark.sql('set hive.input.format=org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat')
spark.sql('set hive.optimize.bucketmapjoin = true')
spark.sql('set hive.stats.autogather=true')
spark.sql('set hive.compute.query.using.stats=true')
spark.sql('set hive.optimize.index.filter=true')
also collected stats for the tables:
И Сортировка, и обмен можно увидеть в физическом плане, но таблицы с ульями в кустах должны были избегать сортировки ишаг обмена
[count#1311L])
+- *Project
+- *SortMergeJoin [key_column#1079], [key_column#1218],Inner
sort step: :- *Sort [key_column#1079 ASC NULLS FIRST], false, 0
exchange step: : +- Exchange hashpartitioning(key_column#1079, 200)
: +- *Filter isnotnull(key_column#1079)
Ожидаемый результат: НЕТ СОРТИРОВКИ И ОБМЕНА
[count#1311L])
+- *Project
+- *SortMergeJoin [key_column#1079], [key_column#1218], Inner
: +- *Filter isnotnull(key_column#1079)`enter code here`
Я хочу избежать шага сортировки и обмена из моего плана, и в соответствии с документацией таблица с корзинами должна была избегатьшаг сортировки и обмена.