Павел Филонов
Компания: Независимый консультант
В задачах машинного обучения мы начинаем с небольших объемов табличных данных. С ними отлично справляется библиотека pandas, предоставляя API, к которому привыкли все, кто занимается ML. Но наступает момент, когда данных становится больше. Они всё еще влезают в память ноутбука (например, в 32 Гб), но время их обработки в pandas уже не устраивает. Тогда на помощь приходит параллельная обработка через multiprocessing напрямую или pandarallel. И мы всё еще работаем с pandas API.
Время идет, и набор данных для нашей задачи уже не влезает в память ноутбука, однако еще помещается на жестком диске. И здесь на помощь приходит dask, который предоставляет pandas-like API и возможности по обработке данных с диска.
Проект растет и развивается. Данные может и влезают на дисковый массив, но 16 ядер уже явно не хватает для быстрой обработки. Dask вновь готов помочь, предоставляя возможность для распределенных вычислений на нескольких узлах.
И вот мы достигли апогея этой истории. Поддерживать отдельный Dask-кластер из такого большого числа узлов становится нерентабельным, и мы переезжаем в общий Spark-кластер. Но благодаря pandas API on Spark всё еще остаемся вместе с так полюбившимся нам многоликим зверьком.
Компания: Независимый консультант
Компания: Независимый консультант