Как объединить фреймы данных pyspark с разными формами и разными столбцами - PullRequest
0 голосов
/ 25 января 2020

У меня есть два кадра данных в Pyspark. Один имеет более 1000 строк, а другой только 4 строки. Столбцы также не совпадают.

df1 с более чем 1000 строк:

+----+--------+--------------+-------------+
| ID |  col1  |     col2     |     col 3   |
+----+--------+--------------+-------------+
|  1 | time1  | value_col2   |  value_col3 |
|  2 | time 2 |  value2_col2 | value2_col3 |
+----+--------+--------------+-------------+
...

df2 только с 4 строками:

+-----+--------------+--------------+
| key |     col_c    |     col_d    |
+-----+--------------+--------------+
| a   |  valuea_colc | valuea_cold  |
| b   | valueb_colc  |  valueb_cold |
+-----+--------------+--------------+

Я хочу создать кадр данных, похожий на этот:

+----+--------+-------------+-------------+--------------+---------------+--------------+-------------+
| ID |  col1  |     col2    |     col 3   |    a_col_c   |    a_col_d    |   b_col_c    |   b_col_d   |
+----+--------+-------------+-------------+--------------+---------------+--------------+-------------+
|  1 | time1  | value_col2  |  value_col3 |  valuea_colc |   valuea_cold | valueb_colc  | valueb_cold |
|  2 | time 2 | value2_col2 | value2_col3 | valuea_colc  | valuea_cold   |  valueb_colc | valueb_cold |
+----+--------+-------------+-------------+--------------+---------------+--------------+-------------+

Не могли бы вы помочь с этим? Я предпочитаю не использовать Pandas.

Спасибо!

1 Ответ

1 голос
/ 03 февраля 2020

Я на самом деле понял это с помощью CrossJoin.

https://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html объясняет, как использовать crossJoin с фреймами данных Pyspark.

...