Ну, это зависит от того, каково ваше определение "распределенного".
Spark MLlib - это фреймворк, который позволяет (но не гарантирует) вам писать код, который способен распространяться. Он решает множество проблем с распределением и синхронизацией, связанных с распределенными вычислениями. Так что да, программистам намного проще кодировать и развертывать распределенные алгоритмы.
Причина, по которой Spark упрощает масштабируемую ML, заключается в том, что вы можете больше сосредоточиться на алгоритме, а не увязать в гонках данных и распределении кода по разным узлам, принимая во внимание локальность данных и т. Д. Обычно это все обрабатывается классом SparkContext / RDD.
Тем не менее, кодирование для Spark не гарантирует, что оно будет распределено оптимально. Есть еще вещи, которые нужно учитывать, такие как разбиение данных и уровень параллелизма, среди многих других.