¿Cómo importar un archivo gzip más grande que el límite de RAM a un Pandas DataFrame? “Kill 9” ¿Usar HDF5?

Tengo un gzip que es de aproximadamente 90 GB. Esto está bien dentro del espacio en disco, pero es mucho más grande que la RAM.

¿Cómo puedo importar esto en un dataframe de pandas? Intenté lo siguiente en la línea de comando:

 # start with Python 3.4.5 import pandas as pd filename = 'filename.gzip' # size 90 GB df = read_table(filename, compression='gzip') 

Sin embargo, después de varios minutos, Python se apaga con Kill 9 .

Después de definir el objeto de base de datos df , planeaba guardarlo en HDF5.

¿Cuál es la forma correcta de hacer esto? ¿Cómo puedo usar pandas.read_table() para hacer esto?

Lo haría de esta manera:

 filename = 'filename.gzip' # size 90 GB hdf_fn = 'result.h5' hdf_key = 'my_huge_df' cols = ['colA','colB','colC','ColZ'] # put here a list of all your columns cols_to_index = ['colA','colZ'] # put here the list of YOUR columns, that you want to index chunksize = 10**6 # you may want to adjust it ... store = pd.HDFStore(hdf_fn) for chunk in pd.read_table(filename, compression='gzip', header=None, names=cols, chunksize=chunksize): # don't index data columns in each iteration - we'll do it later store.append(hdf_key, chunk, data_columns=cols_to_index, index=False) # index data columns in HDFStore store.create_table_index(hdf_key, columns=cols_to_index, optlevel=9, kind='full') store.close()