Acelerando I/O: Parquet e Feather

Alguns de nossos problemas consistem em dados que lemos do armazenamento local. As operações de leitura-processo-gravação podem ser confortáveis em conjuntos de dados relativamente pequenos, mas essas ações para grandes arquivos .csv são bastante incômodas para nós. Eles podem ser muito exigentes em termos de tempo e recursos.
Apresentarei dois tipos de arquivo que aumentarão a velocidade de leitura e gravação de seus dados e comprimirão o tamanho dos dados armazenados no disco:
- Parquet
- Pena
- Acessível por padrão com o Python-Pandas. Mas você pode ter que instalar adicionalmente o pyarrow e algumas extensões de seu tipo, dependendo do seu tipo de dados.
- Oferece suporte ao gerenciamento de E/S baseado em coluna. Dessa forma, você pode evitar o uso temporário de RAM extra durante a leitura de todos os dados e, em seguida, descartar as colunas desnecessárias.
- Armazenando os dados em formato binário em seu próprio tipo em vez de forma bruta, você pode economizar até 50% no armazenamento e pode ganhar até x100 de aceleração em operações de leitura e gravação.
Parquet
Pena
Conclusão
É tão fácil! Definitivamente, recomendo usar esses métodos quando você não precisa armazenar seus dados em formato bruto e todos os usuários não precisam abri-los com o Excel a qualquer momento! Para esse caso excepcional, é mais lógico paralelizar a leitura e a gravação dos dados em vez de alterar o formato dos dados. Também estou pensando em abordar esse cenário no futuro. Espero que este conteúdo tenha sido útil para você, acho que é algo simples, mas bastante eficaz.
Estou usando esses métodos em competições de Kaggle e obtendo bons aumentos de velocidade. Você pode revisar um código de exemplo meu aqui !