无法在pyspark中执行shuffle散列连接

pkmbmrz7  于 2023-10-15  发布在  Spark
关注(0)|答案(1)|浏览(117)

我最后一次使用spark时它还是V1.4.现在我使用的是3.2,我非常渴望学习Spark中不同类型的连接的性能。我似乎不能运行一个 Shuffle 散列加入pyspark。
我运行以下代码来禁用shuffle sort join:

spark.conf.set("spark.sql.join.preferSortMergeJoin", "false")

运行我的join语句:

df = small_table.join(big_table, small_table['id']==big_table['id'])

当我运行

df.explain()

它继续说SortMergeJoin作为计划。如果我使用广播哈希连接,它确实会更改为广播。如何启用shuffle hash join?

9jyewag0

9jyewag01#

你可以显式地传递join hint,如下所示:

spark.conf.set("spark.sql.join.preferSortMergeJoin", "false")

df = big_table.join(small_table.hint("SHUFFLE_HASH"), small_table['id']==big_table['id'])

相关问题