Python 缺少值/大文件时出现云SQL插入错误

Python 缺少值/大文件时出现云SQL插入错误,python,mysql,pandas,Python,Mysql,Pandas,我正在读取csv并使用以下过程将其插入云sql: df = pd.read_csv(csv_file, sep=';', encoding='utf-8', keep_default_na=False) ## from field “world” remove C. , County , Cnty df['world'] = df['world'].str.rstrip('C.CountyCnty') ## connects to mysql database an

我正在读取csv并使用以下过程将其插入云sql:

df = pd.read_csv(csv_file, sep=';', encoding='utf-8', keep_default_na=False)

    ##  from field “world” remove C. , County , Cnty
    df['world'] = df['world'].str.rstrip('C.CountyCnty')

    ## connects to mysql database and adds the dataframe to it
    connection_string = 'mysql+mysqlconnector://xxxx:xxxx@xx.xxx.x.xx:aaaa/mydatabase'

    engine = create_engine(connection_string, echo=False)
    conn = engine.connect()
    df.to_sql(name="mytable", con=engine, if_exists='append', index=False)
    conn.close()
但是,这会安全地插入SQL,直到它面对一个文件,该文件在world字段中以空行值开头。注意:它对稍后出现的空行文件进行安全插入

我认为错误是由于csv数据中的空字段造成的。但是我使用了
keep\u default\u na=False
来修复它。但它仍然存在。我们将非常感谢您的帮助

这就是错误的样子

 (mysql.connector.errors.OperationalError) 2055: Lost connection to MySQL server at 'xx.xxx.xx.x:aaaa', system error: 10053 An established connection was aborted by the software in your host machine
:对于某些数据库,由于超出数据包大小限制,写入大数据帧可能会导致错误。这可以通过在调用sql时设置chunksize参数来避免。例如,以下操作一次将1000行数据批量写入数据库:

 data.to_sql('data_chunked', engine, chunksize=1000)

应该
con=engine
不是
con=conn
?为什么会这样?我没有任何与连接相关的问题。我有空字段的问题。我需要一种方法来跳过以空字段开头的行@GerardH.PilleYou不认为“连接丢失”是连接关系吗?我明白了。说得好。你能告诉我什么时候用con=engine和con=conn吗?我找不到任何相关的东西。谢谢你的回复@GerardH.PilleI刚刚找到了一个使用engine作为con参数的示例,但是我不理解engine.connect()的用法。具体来说,我使用了:
df.To_sql(name=“mytable”,con=engine,if_exists='append',index=False,chunksize=1000)
谢谢@Gerard