apache-spark - Spark复制具有来自不同数据集的列的值的行
问题描述
我正在尝试使用 Apache Spark 中的列的不同值多次复制数据集中的行。假设我有一个数据集如下
数据集 A
| num | group |
| 1 | 2 |
| 3 | 5 |
另一个数据集有不同的列
数据集 B
| id |
| 1 |
| 4 |
我想用数据集 B 的列值复制数据集 A 中的行。您可以说没有任何需要完成的条件条件的连接。所以生成的数据集应该是这样的。
| id | num | group |
| 1 | 1 | 2 |
| 1 | 3 | 5 |
| 4 | 1 | 2 |
| 4 | 3 | 5 |
谁能建议如何实现上述目标?根据我的理解,连接需要在 2 个数据集之间匹配一个条件和列。
解决方案
你想做的事情被称为CartesianProduct
并且df1.crossJoin(df2)
会实现它。但要小心,因为这是一项非常繁重的操作。