1

我正在尝试加快 pandas .to_sql()函数的速度,因为目前将 22 列和 100K 行的表转储到 MS SQL Server Db 需要大约 30 分钟。我试过使用method='multi'chunksize=1000(我读过的是 sql server 的最大值),但得到以下错误,错误中有一堆?s,我的数据在[parameters:错误部分:

DBAPIError: (pyodbc.Error) ('07002', '[07002] [Microsoft][ODBC Driver 17 for SQL Server]COUNT field incorrect or syntax error (0) (SQLExecDirectW)')

VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

[parameters: (one big tuple)]

这是我正在使用的代码:

user_name = 'username'
cred = open('filename', 'r').read()
server_name = 'XXXXXXXX'
port = 'XXXX'
DB = 'database'
driver = 'ODBC Driver 17 for SQL Server'

conn = create_engine('mssql+pyodbc://'+user_name+':'+cred+'@'+server_name+':'+port+'/'+DB+'?driver='+driver)

df.to_sql('test_table', con=conn, if_exists='replace', schema='dbo', method='multi', chunksize= 1000)

关于这里发生的事情或加快速度的其他替代方法的任何想法?

4

0 回答 0