Używając sqlalchemy, powinieneś przekazać silnik, a nie surowe połączenie:
engine = create_engine("mysql+mysqldb://...")
df.to_sql('demand_forecast_t', engine, if_exists='replace', index=False)
Pisanie do MySQL bez sqlalchemy (więc z określeniem flavor='mysql'
) jest przestarzałe.
Gdy problem polega na tym, że masz zbyt dużą ramkę do jednoczesnego zapisu, możesz użyć chunksize
słowo kluczowe (zobacz docstring
). Np.:
df.to_sql('demand_forecast_t', engine, if_exists='replace', chunksize=10000)