首页 > 解决方案 > 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 个数据集之间匹配一个条件和列。

标签: apache-sparkapache-spark-sql

解决方案


你想做的事情被称为CartesianProduct并且df1.crossJoin(df2)会实现它。但要小心,因为这是一项非常繁重的操作。


推荐阅读