Spark SQL 语句广播



有没有办法在Spark SQL语句中使用广播?

例如:

SELECT
Column
FROM
broadcast (Table 1)
JOIN
Table 2
ON
Table1.key = Table2.key

就我而言,表 1 也是一个子查询。

下面是广播联接的语法:

SELECT /*+ BROADCAST(Table 2) */ COLUMN
FROM Table 1 join Table 2
on Table1.key= Table2.key
  1. 若要检查是否发生广播加入,可以在"SQL"选项卡中签入 Spark UI 端口号 18080。

  2. 我们需要确保广播联接是否实际工作的原因是,之前我们使用以下语法:/* 广播连接(表 2( */没有抛出语法错误,但在 UI 中它正在执行排序合并连接

  3. 因此,必须确保我们的连接按预期工作

在 Spark 2.2 或更高版本中,您可以使用规划器提示:

SELECT  /*+ MAPJOIN(Table1) */ COLUMN
FROM Table1 JOIN Table2
ON Table1.key = Table2.key

最新更新