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

У меня есть 3 фрейма данных в pyspark, и я хочу получить новый фрейм данных со всеми возможными комбинациями этих фреймов данных. Я делаю их (не знаю, лучший ли это способ), но когда я масштабирую его до своей исходной проблемы, то есть 5 фреймов данных, но с большими размерами, чем в примере, и мой компьютер больше не поддерживает его.

Что делаю следующим образом:

df_temp_counter = spark.createDataFrame([[x] for x in range(0, 10)], ['counter'])
df_temp_letras = spark.createDataFrame([["A"], ["B"], ["C"], ["D"], ["E"], ["F"]], ['letras'])
df_temp_frutas = spark.createDataFrame([["manzana"], ["platano"], ["pera"], ["durazno"], ["melon"]], ['frutas'])

df_combinaciones = df_temp_counter.crossJoin(df_temp_frutas).crossJoin(df_temp_frutas)
df_combinaciones.show()

+-------+-------+-------+
|counter| frutas| frutas|
+-------+-------+-------+
|      0|manzana|manzana|
|      0|manzana|platano|
|      0|manzana|   pera|
|      0|manzana|durazno|
|      0|manzana|  melon|
|      0|platano|manzana|
|      0|platano|platano|
|      0|platano|   pera|
|      0|platano|durazno|
|      0|platano|  melon|
|      0|   pera|manzana|
|      0|   pera|platano|
|      0|   pera|   pera|
|      0|   pera|durazno|
|      0|   pera|  melon|
|      0|durazno|manzana|
|      0|durazno|platano|
|      0|durazno|   pera|
|      0|durazno|durazno|
|      0|durazno|  melon|
+-------+-------+-------+
only showing top 20 rows

В r с функцией expand.grid() У меня нет проблем, но я не знаю, есть ли что-то подобное и оптимизированное в python / pyspark.

Прежде всего, спасибо! С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...