Python Pandas存储错误:(HDF5ExtError:创建数组的问题)

时间:2015-02-04 11:59:50

标签: python sql pandas hdf5

我在使用Pandas中的HDF5功能存储大量数据时遇到问题。

我要做的是从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()

1 个答案:

答案 0 :(得分:1)

此错误可能是由于您要保存的驱动器上的空间不足造成的 - 请检查目标驱动器上的可用空间。