Wenn Sie die von Spark's DataFrame in jedem Python-Modul erstellten Daten verwenden möchten, können Sie sie mit der Methode "toPandas ()" in den DataFrame von Pandas konvertieren. Zu diesem Zeitpunkt tritt jedoch häufig ein Speicherfehler auf. Durch Versuch und Irrtum, damit es im Speicher gespeichert werden kann, habe ich diejenigen zusammengefasst, die effektiv zu sein scheinen.
Es scheint einen besseren Weg zu geben. Wenn Sie es wissen, lassen Sie es mich bitte wissen!
Die Konvertierung durch Funken wird durch "spark.driver.memory" und "spark.driver.maxResultSize" beeinflusst. Bei Dask ist dies jedoch nicht der Fall, sodass der Fehler leicht vermieden werden kann.
Konvertierung mit dask
import dask.dataframe as dd
df.write.parquet(parquet_path)
dask_df = dd.read_parquet(parquet_path)
pandas_df = dask_df.compute()
Ändern Sie den Datentyp der Variablen, um die Anzahl der Bytes zu verringern.
Datentyp ändern
#Zum Beispiel int32 Typ(4 Bytes)Int8-Typ(1 Byte)Konvertieren zu
dask_df = dask_dt.astype({k: 'int8' for k in dask_df.dtypes[dask_df.dtypes == 'int32'].index})
Recommended Posts