2015-02-04 1 views
0

팬더에서 HDF5 기능을 사용하여 많은 양의 데이터를 저장하는 데 문제가 있습니다.파이썬 팬더 저장 오류 : (HDF5ExtError : 배열 생성 문제)

내가하려는 것은 SQL 서버로부터 엄청난 양의 데이터 (수백만 행)를 다운로드하고 쉽고 빠르게 액세스 할 수 있도록 로컬로 저장하는 것입니다.

SQL 서버에 대한 연결을 만들고 쿼리를 실행하는 몇 가지 함수를 정의했습니다. 데이터를 저장할 때까지 코드가 제대로 작동합니다. 다른 데이터 세트와 .h5 파일의 데이터를 구분합니다. 일부 데이터 세트는 올바르게 저장되지만 더 큰 데이터 세트는 문제를 일으키고 있으며 다음과 같은 오류가 발생합니다.

HDF5ExtError: Problems creating the Array pandas 

해결 방법이 있습니까?

내가 사용하고 코드입니다 :

import pymssql 
import pandas as pd 
import time 

user = 'xxx' 
password = '123' 
server='SQL_Server' 

def connect(): 
""" 
Connects to SQL database and return a connection object. 
""" 
    connection = pymssql.connect(host=server, user=user, password=password, database=user+"_db") 
    return connection 

def query(query, connection, index = None): 
""" 
Execute an SQL query and return the result as a data frame. 
""" 
df = pd.read_sql_query(query, connection, index_col=index) 
return df 

def store_data(connection): 
for i in reversed(range(0,8)): 
    st = 'store' + str(i) + '.h5' 
    store = pd.HDFStore(st) 
    for j in reversed(range(i*8,i*8 + 8)): 
     q = "Some query here" 
     df = query(q, connection) 
     name = 'snap' + str(j) 
     print 'Storing data for ' + name + " in " + st 
     store[name] = df 
     time.sleep(30) 
    print '[DONE] - Closing ' + st 
    store.close() 
+0

전체 스택 추적을 추가하십시오. – cel

+0

불행하게도 화면 모드 (Linux)의 원격 컴퓨터에서 코드를 실행 했으므로 추적이 완전히 표시되지 않고 프로그램을 닫을 수 있으므로 사용할 수 없습니다. 그것을 검색 할 수있는 방법이 있습니까? – Jemme

답변

0

이 오류는 당신이 저장하려는 드라이브에 공간이 부족으로 인해 발생할 수 - 대상 드라이브의 여유 공간을 확인.