У меня есть 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.
Прежде всего, спасибо! С уважением.