На слабой машине DuckDB и Polars оказались практичнее pandas и PySpark
На слабой машине DuckDB и Polars оказались практичнее pandas и PySpark Грегори Бондаренко сравнил pandas, pandas с dtype_backend="pyarrow", Polars, DuckDB и PySpark на слабой виртуальной машине с 2 ядрами и 5,8 ГБ памяти. На таком стенде DuckDB выглядел самым экономным по памяти и почти везде самым быстрым: группировка 180 млн строк заняла 5,84 с и потребовала 0,4 ГБ. Polars тоже показал себя полезным вариантом, если важен знакомый датафрейм-синтаксис и есть риск упереться в память: обычный collect() работает в памяти, а collect(engine="streaming") снизил расход до 2,3 ГБ и выполнил ту же группировку за 7,35 с. pandas остался рабочим для небольших данных, но даже таблица на диске 149 МБ после загрузки занимала около 1,9 ГБ. На 6 млн строк все, кроме PySpark, укладывались в секунды. PySpark на слабой одной машине оказался самым медленным на малых объёмах и, по итогу теста, нужен скорее тогда, когда данные не помещаются на одну машину или уже есть кластер. Для локальной аналитики это означает простой выбор: сначала пробовать DuckDB, затем Polars со streaming, а pandas оставлять для компактных задач и чтения только нужных колонок. Источник: Habr Computer Hardware RU — https://habr.com/ru/articles/1087386/