我使用pyodbc导入sql大数据。但是没有错误,没有保存的文件和没有消息。(数据有300000行和600列)
如何在python odbc中加载大数据?
这是我的代码:
import pyodbc
import pandas as pd
H2=pyodbc.connect('DRIVER={SQL Server}; SERVER={192.168.x.x};DATABASE={H2};UID=hoho;PWD=haha')
cursor=H2.cursor()
cursor.execute("Select * From [dbo].[HIST_UTDATA001_201506]")
fieldnames1=[f[0] for f in cursor.description]
result=[]
result=cursor.fetchmany(1000)
b1=result
while b1:
b1=cursor.fetchmany(1000)
if not b1:
break
result.extend(b1)
df = pd.DataFrame(result,columns=[fieldnames1])
df.to_csv('TEST1.csv')
答案 0 :(得分:2)
你很可能内存不足。只有一个整数(8个字节)的列将需要(大约)16个额外的字节用于Python对象和指向它们的指针。每列24个字节。加上数字,你需要至少24 * 600 * 300,000 = 4,320,000,000字节。你需要更多的字符串。
您可以尝试turbodbc。它比pyodbc更快,并提供内置的NumPy支持,以避免数字的Python对象。这可能会减少你的内存消耗。