Spark SQL语句广播

时间:2017-08-04 08:59:00

标签: sql apache-spark

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

例如:

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

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

2 个答案:

答案 0 :(得分:6)

在Spark 2.2或更高版本中,您可以使用计划程序提示:

<xsl:value-of select="substring-after(Product/CreateDate, '-')" />  
<xsl:text>/</xsl:text>  
<xsl:value-of select="substring-before(Product/CreateDate, '-')" /> 

答案 1 :(得分:2)

以下是广播连接的语法:

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

  2. 我们需要确保广播连接是否真正起作用的原因是因为我们之前使用了以下语法: / * BROADCASTJOIN(Table2)* /不会引发语法错误,但是在UI中它正在执行排序合并联接

  3. 因此,至关重要的是确保我们的联接按预期工作