Автор протестировал библиотеки pandas, Polars, DuckDB и PySpark на слабом оборудовании с 5,8 ГБ оперативной памяти и двумя ядрами процессора. Целью было выяснить пределы возможностей инструментов при обработке данных. Для замеров использовалась программа TableBench, выполняющая пять стандартных операций, включая фильтрацию, группировку и объединение таблиц.

Pandas начал испытывать нехватку памяти при загрузке 18 млн строк. Использование бэкенда pyarrow увеличило лимит до 60 млн строк, но не ускорило группировку и сортировку. Polars показал более высокую скорость, однако стандартный режим работы не справился с 180 млн строк. Потоковый движок позволил Polars обработать этот объем за 7,35 секунды при потреблении 2,3 ГБ памяти.

DuckDB продемонстрировал высокую эффективность, выполнив все задачи при наличии свободного места на диске. Группировка 180 млн строк заняла 5,84 секунды при расходе 0,4 ГБ памяти. PySpark на одной машине оказался медленнее всех, однако стал единственным инструментом, который смог материализовать кэш для 180 млн строк, хотя на это потребовалось 426 секунд.

Результаты показывают, что Spark эффективен для распределенных вычислений, но избыточен для локальных задач. Для ускорения обработки данных на ноутбуке лучше подходят Polars или DuckDB. Автор также отметил, что оптимизация кода внутри самого pandas иногда дает более значимый прирост производительности, чем полная замена библиотеки на другую.