Перейти к содержимому
1 / 15

Что такое Spark и чем он отличается от «запустить обработку на одной большой машине»

Spark — движок распределённой обработки данных: он делит датасет на части, раскладывает их по машинам кластера и выполняет над ними один и тот же код параллельно. Порог, за которым он оправдан, довольно высок. Пока данные помещаются в память одной машины, pandas или Polars будут быстрее Spark: у него есть постоянная плата за запуск процессов, сериализацию и передачу данных по сети, и на гигабайте она не окупается. Spark выигрывает, когда данных больше, чем памяти, когда обработка должна пережить падение отдельной машины (потерянные задачи пересчитываются автоматически) или когда объём растёт, а переписывать код не хочется — тот же код работает на локальной машине и на сотне узлов. Второе отличие важнее первого: Spark декларативен. Вы описываете, что нужно получить, а план выполнения строит оптимизатор Catalyst — он переставит фильтры, выберет стратегию джойна и решит, сколько будет партиций.

Что такое Spark и чем он отличается от «запустить обработку на одной большой машине» | JScriptiser