我在使用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()
答案 0 :(得分:1)
此错误可能是由于您要保存的驱动器上的空间不足造成的 - 请检查目标驱动器上的可用空间。