Potrzebuję pomocy, aby to zadziałało. Mam pd.DataFrame (df)
, które muszę załadować do bazy danych MySQL. Nie rozumiem, co oznacza komunikat o błędzie i jak go naprawić.Pandy Napisz tabelę do MySQL: "nie można przywrócić"
Każda pomoc będzie bardzo ceniona.
To co próbowałem:
import MySQLdb
from pandas.io import sql
#METHOD 1
db=MySQLdb.connect(host="***",port=***,user="***",passwd="***",db="***")
df.to_sql(con=db, name='forecast', if_exists='replace', flavor='mysql')
##Also tried
sql.write_frame(df, con=db, name='forecast', if_exists='replace', flavor='mysql')
**DatabaseError**: Execution failed on sql: SHOW TABLES LIKE %s
(2006, 'MySQL server has gone away')
unable to rollback
#METHOD 2: using sqlalchemy
from sqlalchemy import create_engine
engine = create_engine("mysql+mysqldb://**username***:**passwd**@***host***:3306/**dbname**")
conn = engine.raw_connection()
df.to_sql(name='demand_forecast_t', con=conn,if_exists='replace', flavor='mysql',index=False, index_label='rowID')
conn.close()
Komunikat o błędzie jest:
**OperationalError**: DatabaseError: Execution failed on sql: SHOW TABLES LIKE %s
(2006, 'MySQL server has gone away') unable to rollback
jakiej wersji pandy używasz? –
@ Andy "0.16.0" –
Myślę, że znam problem. DataFrame, którą próbuję napisać, jest zbyt duży, aby pisać na raz. Jeśli wezmę podzbiór, powyższy kod działa. Sądzę, że będę musiał napisać jakąś iterację, aby wykonać tę pracę naraz. –