Spark Scala, объединение двух столбчатых фреймов данных, каждый раз дублирующих второй фрейм данных - PullRequest
0 голосов
/ 06 мая 2020

Я хочу объединить 2 столбца или 2 фрейма данных, например df1

+--+
|id|
+--+
|1 |
|2 |
|3 |
+--+

df2 -> этот также может быть списком

+--+
|m |
+--+
|A |
|B |
|C |
+--+

Я хочу получить как результат таблица

+--+--+
|id|m |
+--+--+
|1 |A |
|1 |B |
|1 |C |
|2 |A |
|2 |B |
|2 |C |
|3 |A |
|3 |B |
|3 |C |
+--+--+

1 Ответ

0 голосов
/ 06 мая 2020

def crossJoin(right: org.apache.spark.sql.Dataset[_]): org.apache.spark.sql.DataFrame

Используя функцию crossJoin, вы можете получить тот же результат. Пожалуйста, проверьте код ниже.

scala> dfa.show
+---+
| id|
+---+
|  1|
|  2|
|  3|
+---+


scala> dfb.show
+---+
|  m|
+---+
|  A|
|  B|
|  C|
+---+


scala> dfa.crossJoin(dfb).orderBy($"id".asc).show(false)
+---+---+
|id |m  |
+---+---+
|1  |B  |
|1  |A  |
|1  |C  |
|2  |A  |
|2  |B  |
|2  |C  |
|3  |C  |
|3  |B  |
|3  |A  |
+---+---+

...