Ich brauche Hilfe, damit das funktioniert. Ich habe eine pd.DataFrame (df)
, die ich in eine MySQL-Datenbank laden muss. Ich verstehe nicht, was die Fehlermeldung bedeutet und wie ich sie beheben kann.Pandas Tabelle in MySQL schreiben: "Rollback nicht möglich"
Jede Hilfe wird sehr geschätzt. Diese
ist, was ich versucht:
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()
Die Fehlermeldung lautet:
**OperationalError**: DatabaseError: Execution failed on sql: SHOW TABLES LIKE %s
(2006, 'MySQL server has gone away') unable to rollback
Welche Pandas Version verwendest du? –
@ Andy "0.16.0" –
Ich denke, ich kenne das Problem. Der Datenrahmen, den ich schreiben möchte, ist zu groß, um auf einmal zu schreiben. Wenn ich eine Teilmenge nehme, funktioniert der obige Code. Ich denke, ich werde eine Art Iteration schreiben müssen, um diese Aufgabe auf einmal zu erledigen. –