Acelerando E/S: Parquet y Feather

Algunos de nuestros problemas consisten en datos que leemos del almacenamiento local. Las operaciones de lectura, proceso y escritura pueden ser cómodas en conjuntos de datos relativamente pequeños, pero esas acciones para archivos .csv grandes son bastante engorrosas para nosotros. Pueden ser muy exigentes en términos de tiempo y recursos.
Presentaré dos tipos de archivos que aumentarán la velocidad de lectura y escritura de sus datos y comprimirán el tamaño de los datos almacenados en el disco:
- Parquet
- Pluma
- Accesible por defecto con Python-Pandas. Pero es posible que deba instalar adicionalmente pyarrow y algunas extensiones de este tipo según su tipo de datos.
- Admite la gestión de E/S basada en columnas. De esta manera, puede evitar el uso temporal de RAM adicional mientras lee todos los datos y luego elimina las columnas innecesarias.
- Al almacenar los datos en un formato binario en su propio tipo en lugar de en formato sin procesar, puede ahorrar hasta un 50 % en el almacenamiento y puede obtener una aceleración de hasta x100 en las operaciones de lectura y escritura.
Parquet
Pluma
Conclusión
¡Es fácil! ¡Definitivamente recomiendo usar estos métodos cuando no tiene que almacenar sus datos en formato sin formato y no todos los usuarios necesitan poder abrirlos con Excel en cualquier momento! Para ese caso excepcional, es más lógico paralelizar la lectura y escritura de datos en lugar de cambiar el formato de datos. También estoy pensando en abordar ese escenario en el futuro. Espero que este contenido te haya sido de utilidad, creo que es algo sencillo pero bastante efectivo.
Estoy usando estos métodos en las competencias de Kaggle y obtengo aceleraciones bastante buenas. ¡Puedes revisar un código de ejemplo mío aquí !