2015-07-10 81 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對象的數字。這可能會減少你的內存消耗。