SparkSQL 函数 crossjoin()

2023-12-19 21:18:13

crossJoin?是 Spark SQL 中用于连接两个 DataFrame 的操作。

这个操作会生成一个新的 DataFrame,其中包含两个原始 DataFrame 中所有可能的行组合,即它是一种笛卡尔积。

?crossjoin和join的区别

与?join?操作相比,crossJoin?不需要两个 DataFrame 有共同的列。join?操作是基于两个 DataFrame 中的共享列进行连接,而?crossJoin?则是将两个 DataFrame 中的所有行都配对起来。

举个例子来说明:

假设?everyProvinceAvg?DataFrame 包含以下数据:

province, average
A 10
B 20
C30

假设?allProvincesAvg?DataFrame 包含以下数据:

totalAverage
15

通过?everyProvinceAvg.crossJoin(allProvincesAvg),生成的新的 DataFrame 将包含以下数据:

provinceaverage totalAverage
A10 15
B20 15
C3015

可以看到,新的 DataFrame 中每一行都包含了每个省份的平均值和所有省份的总平均值。这就是?crossJoin?的基本介绍和用法。

与?join?操作的区别在于,join?操作是基于两个 DataFrame 中的共享列进行连接,而?crossJoin?则将两个 DataFrame 中的所有行都配对起来,生成一个新的 DataFrame。因此,如果两个 DataFrame 没有共享的列,那么?join?操作就无法进行,而?crossJoin?则可以生成一个新的 DataFrame。

文章来源:https://blog.csdn.net/m0_69097184/article/details/135085963
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。