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
C
30
假设?allProvincesAvg
?DataFrame 包含以下数据:
totalAverage |
15 |
通过?everyProvinceAvg.crossJoin(allProvincesAvg)
,生成的新的 DataFrame 将包含以下数据:
province | average | totalAverage |
A | 10 | 15 |
B | 20 | 15 |
C | 30 | 15 |
可以看到,新的 DataFrame 中每一行都包含了每个省份的平均值和所有省份的总平均值。这就是?crossJoin
?的基本介绍和用法。
与?join
?操作的区别在于,join
?操作是基于两个 DataFrame 中的共享列进行连接,而?crossJoin
?则将两个 DataFrame 中的所有行都配对起来,生成一个新的 DataFrame。因此,如果两个 DataFrame 没有共享的列,那么?join
?操作就无法进行,而?crossJoin
?则可以生成一个新的 DataFrame。
文章来源:https://blog.csdn.net/m0_69097184/article/details/135085963
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!