Lorsque vous souhaitez utiliser les données créées par le DataFrame de Spark dans chaque module Python, vous pouvez utiliser la méthode toPandas ()
pour les convertir en DataFrame de Pandas, mais une erreur de mémoire se produit souvent à ce moment-là.
Par essais et erreurs pour qu'il puisse être stocké dans la mémoire, j'ai résumé ceux qui semblent efficaces.
Il semble y avoir un meilleur moyen, alors si vous le savez, faites-le moi savoir!
La conversion par spark est affectée par spark.driver.memory
et spark.driver.maxResultSize
, mais dans le cas de dask ce n'est pas le cas, il est donc facile d'éviter l'erreur.
Conversion à l'aide de Dask
import dask.dataframe as dd
df.write.parquet(parquet_path)
dask_df = dd.read_parquet(parquet_path)
pandas_df = dask_df.compute()
Modifiez le type de données de la variable pour réduire le nombre d'octets.
Changer le type de données
#Par exemple, type int32(4 octets)Type Int8(1 octet)Convertir en
dask_df = dask_dt.astype({k: 'int8' for k in dask_df.dtypes[dask_df.dtypes == 'int32'].index})
Recommended Posts