dfj3 = spark.createDataFrame(
['a','b','b'],StringType()
)
dfj4 = spark.createDataFrame(
['c','d','e'],StringType()
)
dfj3.join(dfj4).count() // #crossjoin, count = 9
dfj3.join(dfj4,dfj3.value==dfj4.value).count() #innerjoin, count = 0
dfj3.join(dfj4,dfj3.value==dfj4.value,'cross').count() #crossjoin with condition, count = 0
为什么第一个和第三个交叉连接的工作方式不同?
预期有连接条件的交叉连接和无连接条件的交叉连接应该相同,因为将对两个表中的所有记录执行连接。