我有一个1,000,000 x 50 Pandas DataFrame,我目前正在使用以下方法写入SQL表:
df.to_sql(‘my_table’,con,index = False)
这需要非常长的时间.我已经看到了关于如何在线加速这个过程的各种解释,但它们似乎都不适用于MSSQL.
>如果我尝试以下方法:
然后我得到一个no属性copy_from错误.
>如果我尝试多线程方法:
然后我得到一个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()))
标签:python,import,sql,pandas,performance
来源: https://codeday.me/bug/20190519/1133921.html