如何在Spark SQL中使用CROSS JOIN和CROSS APPLY

时间:2016-11-23 11:46:56

标签: scala apache-spark apache-spark-sql

我是Spark和Scala的新手,我编写Spark SQL代码。我的情况是在我的逻辑中应用CROSS JOIN和CROSS APPLY。在这里,我将发布我必须转换为spark SQL的SQL查询。

select Table1.Column1,Table2.Column2,Table3.Column3
from Table1 CROSS JOIN Table2 CROSS APPLY Table3

我需要上面的查询来转换为Spark SQL中的SQLContext。请帮助我。提前致谢。

2 个答案:

答案 0 :(得分:0)

首先在spark conf

中设置以下属性
id

然后spark.sql.crossJoin.enabled=true 将进行Cross / Cartesian加入,

我们也可以使用下面的查询来做同样的事情

dataFrame1.join(dataFrame2)

答案 1 :(得分:0)

设置Spark配置

var sparkConf: SparkConf = null

 sparkConf = new SparkConf()

.set("spark.sql.crossJoin.enabled", "true")

使用crossJoin方法在spark 2.x中显式交叉联接

crossJoin(右侧:数据集[_]):DataFrame

var df_new = df1.crossJoin(df2);

注意:交叉联接是最耗时的联接之一,应经常避免。