PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Crea una tabella sql da dask dataframe usando map_partitions e pd.df.to_sql

Semplicemente, hai creato un dataframe che è una prescrizione del lavoro da fare, ma non l'hai eseguito. Per eseguire, devi chiamare .compute() sul risultato.

Nota che l'output qui non è in realtà un dataframe, ogni partizione restituisce None (perché to_sql non ha output), quindi potrebbe essere più pulito esprimerlo con df.to_delayed , qualcosa come

dto_sql = dask.delayed(pd.DataFrame.to_sql)
out = [dto_sql(d, 'table_name', db_url, if_exists='append', index=True)
       for d in ddf.to_delayed()]
dask.compute(*out)

Si noti inoltre che se si ottiene un buon parallelismo dipenderà dal driver del database e dal sistema di dati stesso.