我是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。请帮助我。提前致谢。
答案 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);
注意:交叉联接是最耗时的联接之一,应经常避免。