Przyspieszenie we/wy: Parquet i Feather

Niektóre z naszych problemów dotyczą danych, które odczytujemy z pamięci lokalnej. Operacje odczytu-przetwarzania-zapisu mogą być wygodne na stosunkowo małych zbiorach danych, ale te operacje na dużych plikach .csv są dla nas dość uciążliwe. Mogą być bardzo wymagające pod względem czasu i zasobów.
Przedstawię dwa typy plików, które zwiększą szybkość odczytu i zapisu Twoich danych oraz skompresują rozmiar danych przechowywanych na dysku:
- Parkiet
- Pióro
- Dostępne domyślnie z Python-Pandas. Ale może być konieczne dodatkowe zainstalowanie pyarrow i niektórych rozszerzeń tego rodzaju w zależności od typu danych.
- Obsługa zarządzania we/wy opartego na kolumnach. W ten sposób możesz zapobiec tymczasowemu używaniu dodatkowej pamięci RAM podczas odczytu wszystkich danych, a następnie usuwaniu niepotrzebnych kolumn.
- Przechowywanie danych w formacie binarnym we własnym typie zamiast w postaci surowej pozwala zaoszczędzić do 50% miejsca na dysku i uzyskać przyspieszenie do 100 razy w operacjach odczytu i zapisu.
Parkiet
Pióro
Wniosek
To takie proste! Zdecydowanie polecam korzystanie z tych metod, gdy nie musisz przechowywać danych w surowym formacie, a każdy użytkownik nie musi mieć możliwości otwarcia ich w Excelu w dowolnym momencie! W tym wyjątkowym przypadku bardziej logiczne jest równoległe odczytywanie i zapisywanie danych zamiast zmiany formatu danych. Zastanawiam się również nad rozwiązaniem tego scenariusza w przyszłości. Mam nadzieję, że ta treść była dla Ciebie przydatna, myślę, że jest to coś prostego, ale dość skutecznego.
Używam tych metod w zawodach Kaggle i uzyskuję całkiem niezłe przyspieszenia. Możesz przejrzeć mój przykładowy kod tutaj !