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.