2015-07-10 75 views
1

我使用pyodbc导入sql大数据。但没有错误,没有保存的文件和消息(数据有300000行和600列)Python:odbc数据加载错误

如何在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

当我尝试,我的python shell重新启动后很长时间 –

+0

你可以提供表的架构 – The6thSense

回答

1

你最有可能运行内存。只有一个整数(8字节)的列将需要(近似)16个附加字节用于Python对象和指向它们的指针。每列创建24个字节。加起来的数字,你至少需要24 * 600 * 300,000 = 4,320,000,000字节。你将需要更多的字符串。

你可以试试turbodbc。它比pyodbc更快,并提供内置的NumPy支持来避免Python对象的数字。这可能会减少你的内存消耗。