У меня простой вопрос, я не могу не чувствовать, что упускаю что-то очевидное.
Я прочитал данные из исходной таблицы (SQL Server) и создал файл HDF5 для хранения данных с помощью следующего:
output.to_hdf('h5name', 'df', format='table', data_columns=True, append=True, complib='blosc', min_itemsize = 10)
Набор данных составляет ~ 50 миллионов строк и 11 столбцов.
Если я прочитаю весь HDF5 обратно в кадр данных (через HDFStore.select или read_hdf), он потребляет около 24 ГБ ОЗУ. Если я анализирую определенные столбцы в операторах чтения (например, выбирая 2 или 3 столбца), фрейм данных теперь возвращает только эти столбцы, однако потребляется такое же количество памяти (24 ГБ).
Это работает на Python 2.7 с Pandas 0.14.
Я упускаю что-то очевидное?
РЕДАКТИРОВАТЬ: я думаю, что ответил на свой вопрос. Хотя я много искал перед публикацией, очевидно, что после публикации я нашел полезную ссылку: https://github.com/pydata/pandas/issues/6379
Любые предложения по оптимизации этого процесса были бы замечательными, из-за ограничений памяти я не могу достичь пика памяти, необходимого для выпуска через gc.