«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Что быстрее и дешевле конвертировать файлы в AWS: Polar или Pandas?

Что быстрее и дешевле конвертировать файлы в AWS: Polar или Pandas?

Опубликовано 18 августа 2024 г.
Просматривать:436

Оба предлагают широкий спектр инструментов и преимуществ, которые могут заставить нас усомниться в том, какой из двух выбрать в какой-то момент. Речь идет не об изменении всех процессов компании, чтобы они начали использовать Polars или о «смерти» Pandas (это произойдет не в ближайшем будущем). Речь идет о знании других инструментов, которые могут помочь нам сократить затраты и время в процессах, получив такие же или лучшие результаты.

Когда мы используем облачные сервисы, мы уделяем приоритетное внимание определенным факторам, включая их стоимость. Для этого процесса я использую сервисы AWS Lambda со средой выполнения Python 3.10 и S3 для хранения необработанного файла и файла, преобразованного в паркет.

Намерение состоит в том, чтобы получить файл CSV в виде необработанных данных и обработать его с помощью pandas и Polar с целью проверки, какая из этих двух библиотек предлагает нам лучшую оптимизацию ресурсов, таких как память и вес результирующего файла.

]

Панды
Это библиотека Python, специализирующаяся на манипулировании и анализе данных. Она написана на C, ее первый выпуск состоялся в 2008 году.

*Поляры *
Это библиотека Python и Rust, специализирующаяся на манипулировании и анализе данных, которая позволяет выполнять параллельные процессы, написана в основном на Rust и выпущена в 2022 году.

Архитектура процесса:

¿Qué es más rápido y económico para convertir archivos en AWS: Polar o Pandas?

Проект довольно прост, как показано в архитектуре: пользователь помещает CSV-файл в папку work/pandas или work/porlas и автоматически запускает триггер s3 для обработки файла, чтобы преобразовать его в паркет и отправить в обработку.

В этом небольшом проекте используйте две лямбды со следующей конфигурацией:
Память: 2 ГБ
Эфемерная память: 2 ГБ
Время жизни: 600 секунд

Требования
Лямбда с пандами: Pandas, Numpy и Pyarrow
Лямбда с полярами: Поляры

Набор данных, использованный для сравнения, доступен на Kaggle под названием «Обзоры фильмов на Rotten Tomatoes — 1,44 млн строк» ​​или может быть загружен отсюда.

Полный репозиторий доступен на GitHub, его можно клонировать здесь.

Размер или вес
Лямбда, которую использует Pandas, требует еще двух плагинов для создания файла паркета, в данном случае это PyArrow и конкретная версия numpy для версии Pandas, которую я использовал. В результате мы получили лямбду с весом или размером 74,4 МБ, что очень близко к пределу, который AWS допускает для веса лямбды.

Лямбда с Polars не требует другого плагина, такого как PyArrow, который упрощает жизнь и уменьшает размер лямбды менее чем вдвое. В результате наша лямбда имеет вес или размер 30,6 МБ по сравнению с первой, что дает нам место для установки других зависимостей, которые могут нам понадобиться для процесса преобразования.

Производительность

¿Qué es más rápido y económico para convertir archivos en AWS: Polar o Pandas?
Лямбда с Pandas была оптимизирована для использования сжатия после первой версии, однако ее поведение также было проанализировано.
Панды
Обработка набора данных заняла 18 секунд, а для обработки CSV-файла и создания файла Parquet потребовалось 1894 МБ памяти. По сравнению с другими версиями, именно эта версия требовала больше всего времени и ресурсов.

Сжатие Pandas
Добавление строки кода позволило нам немного улучшиться по сравнению с предыдущей версией (Pandas), на обработку набора данных ушло 17 секунд и использовано 1837 МБ, что представляет собой существенное улучшение не во времени обработки и вычислений, а в размере. полученного файла.

Полярные территории
Обработка того же набора данных заняла 12 секунд, а я использовал всего 1462 МБ, по сравнению с двумя предыдущими, это означает экономию времени на 44,44% и меньшее потребление памяти.

Размер выходного файла

¿Qué es más rápido y económico para convertir archivos en AWS: Polar o Pandas?
Панды
Лямбда, в которой не был установлен процесс сжатия, создала паркетный файл размером 177,4 МБ.

Сжатие Pandas
При настройке сжатия в лямбде у меня не создается паркетный файл размером 121,1 МБ. Одна небольшая строка или опция помогла нам уменьшить размер файла на 31,74%. Учитывая, что это не существенное изменение кода, это очень хороший вариант.

Полярные территории
Polars создала файл размером 105,8 МБ, который, приобретенный вместе с первой версией Pandas, представляет собой экономию на 40,36% и 12,63% по сравнению с версией Pandas со сжатием.

Заключение
Нет необходимости менять все внутренние процессы, использующие Pandas, чтобы они теперь использовали Polars, однако важно учитывать, что если мы говорим о тысячах или миллионах выполнения лямбда-выражений, использование Polars поможет нам не только с развертыванием время, но также поможет нам снизить затраты благодаря повременной тарификации, которую AWS взимает за бессерверные сервисы, такие как Lambda.
Аналогичным образом, когда мы переводим эти 40,36% в миллионы файлов, мы говорим о ГБ или ТБ, что окажет существенное влияние на Datalake или Dataware или даже на холодное файловое хранилище.

Сокращение с помощью Polars не будет ограничиваться только этими двумя факторами, поскольку это сильно повлияет на вывод данных и/или объектов из AWS, поскольку это услуга, которая имеет свою стоимость.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/edsantoshn/que-es-mas-rapido-y- Economico-para-convertir-archivos-en-aws-polar-o-pandas-594p?1 Если есть любое нарушение, пожалуйста, свяжитесь с [email protected], чтобы удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3