Dataframe导入到Mysql时出错

出错

Dataframe导入到Mysql时出错,之前使用pandas处理好数据后,直接导入到mysql中,运行几个月了一直没问题,忽然今天在跑数据时,提示Killed,进程直接被干掉了,第一反应就是数据量太大,可能导致内存满了,直接被系统干掉了。赶紧登录阿里云的控制台查看内存和CPU的使用情况,发现内存也就是在80%左右的使用率,并没有到100%啊,为什么还是被kill呢?

解决

百度了半天,找打了解决方法,需要在to_sql中增加chunksize参数,这里设置为10000,关键代码如下:

pd.to_sql(name='table_name',con=connect, index= False, if_exists='replace', chunksize=10000)

说明

可以通过指定chunksize参数的方式来进行大批量插入,pandas会自动将数据拆分成chunksize大小的数据块进行批量插入,其实原理类似于我在上面使用的循环插入法.在不指定这个参数的时候,pandas会一次性插入dataframe中的所有记录,mysql如果服务器不能响应这么大数据量的插入,就会出现上述错误,我这里体现出被kill。

本文作者:肖云

本文链接:http://www.d7dd.com/2021/1/dataframe-to-mysql

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0许可协议。转载请注明出处!

H5移动端文本输入框高度问题
0 条评论
已登录,注销 取消