Ускорение ввода-вывода: паркет и перо

Некоторые из наших проблем связаны с данными, которые мы считываем из локального хранилища. Операции чтения-обработки-записи могут быть удобными для относительно небольших наборов данных, но эти действия для больших файлов .csv для нас довольно громоздки. Они могут быть очень требовательны с точки зрения времени и ресурсов.
Я представлю два типа файлов, которые увеличат скорость чтения-записи ваших данных и сократят размер данных, хранящихся на диске:
- Паркет
- Пух Перо
- Доступен по умолчанию с Python-Pandas. Но вам, возможно, придется дополнительно установить pyarrow и некоторые его расширения в зависимости от вашего типа данных.
- Поддержка управления вводом-выводом на основе столбцов. Таким образом, вы можете предотвратить временное использование дополнительной оперативной памяти при чтении всех данных и последующем удалении ненужных столбцов.
- Сохраняя данные в двоичном формате в их собственном виде, а не в необработанном виде, вы можете сэкономить до 50% места в хранилище и получить ускорение до x100 в операциях чтения-записи.
Паркет
Пух Перо
Заключение
Это так просто! Я определенно рекомендую использовать эти методы, когда вам не нужно хранить данные в необработанном формате, и каждому пользователю не нужно открывать их в Excel в любое время! В этом исключительном случае логичнее распараллелить чтение и запись данных вместо изменения формата данных. Я также думаю о рассмотрении этого сценария в будущем. Надеюсь, этот контент был для вас полезен, я думаю, что это что-то простое, но достаточно эффективное.
Я использую эти методы в соревнованиях Kaggle и получаю довольно хорошие ускорения. Вы можете просмотреть мой пример кода здесь !