微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 加速Pandas to_sql()?

我有一个1,000,000 x 50 Pandas DataFrame,我目前正在使用以下方法写入sql表:

df.to_sql(‘my_table’,con,index = False)

这需要非常长的时间.我已经看到了关于如何在线加速这个过程的各种解释,但它们似乎都不适用于MSsql.

>如果我尝试以下方法

Bulk Insert A Pandas DataFrame Using SQLAlchemy

然后我得到一个no属性copy_from错误.
>如果我尝试多线程方法

http://techyoubaji.blogspot.com/2015/10/speed-up-pandas-tosql-with.html

然后我得到一个QueuePool限制大小5溢出10到达,连接超时错误.

有没有简单的方法来加速to_sql()到MSsql表?要么是通过BULK copY还是其他一些方法,而是完全来自Python代码

解决方法:

我已经使用ctds进行批量插入,使用sql服务器的速度要快得多.在下面的示例中,df是pandas DataFrame. DataFrame中的列序列与mydb的架构相同.

import ctds

conn = ctds.connect('server', user='user', password='password', database='mydb')
conn.bulk_insert('table', (df.to_records(index=False).tolist()))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐