我有一个简单的问题,我不禁感到我错过了一些明显的东西.
我已经从源表(SQL Server)读取数据并创建了一个HDF5文件来通过以下方式存储数据:
output.to_hdf('h5name','df',format ='table',data_columns = True,append = True,complib ='blosc',min_itemsize = 10)
数据集约为5000万行和11列.
如果我将整个HDF5读回数据帧(通过HDFStore.select或read_hdf),它会消耗大约~24GB的RAM.如果我将特定列解析为read语句(例如,选择2或3列),则数据帧现在仅返回那些列,但是消耗的内存量相同(24GB).
这是在带有Pandas 0.14的Python 2.7上运行的.
我错过了一些明显的东西吗
编辑:我想我回答了自己的问题.虽然我在发布之前做了很多搜索,但很明显一旦发布我找到了一个有用的链接:https: //github.com/pydata/pandas/issues/6379
关于如何优化此过程的任何建议都会很好,因为内存限制我无法达到通过gc释放所需的峰值内存.