Spark拒绝显式广播加入

时间:2019-05-03 17:58:19

标签: pyspark apache-spark-sql

在我的pyspark代码(v2.4)中,我加入了两个数据框:一个很大,另一个很小(只有几个条目)。但是,小DF是另一个大DF的摘要。 我的广播连接maxsize阈值足够大,可以进行广播连接,但事实并非如此。即使我明确要求: df_large.join(broadcast(df_small), ...) 实际计划仍指示SortMergeJoin。仅当我将小型DF保存到文件并在加入命令之前重新读取它时,我才会获得BroadcastJoin。

我还必须强制执行广播加入的其他方式吗? 作为背景信息:

  1. 需要广播加入,因为否则会有很大的偏差
  2. 用UDF替换联接似乎是一个不好的选择,因为这涉及到尽早收集(尽管广播联接也可以这样做吗?)

谢谢

0 个答案:

没有答案