Насколько я понимаю, раздел (...) обслуживается одним исполнителем.
Это верно, однако обратное неверно - один исполнитель может обрабатывать несколько разделов /задач на нескольких этапах или даже на нескольких RDD).
, в чем же пример преимущества от назначенного исполнителя, выполняющего больше ядер?
Прежде всего, обрабатывая несколько задач вв то же время.Поскольку каждый исполнитель представляет собой отдельную JVM, что является относительно тяжелым процессом, может быть предпочтительнее сохранить только экземпляр для нескольких потоков.Кроме того, он может предоставить дополнительные преимущества, такие как предоставление разделяемой памяти, которая может использоваться для нескольких задач (например, хранить широковещательные переменные ).
Вторичное приложение применяет несколько потоков к одному разделу, когдапользователь вызывает многопоточный код.Однако это не то, что делается по умолчанию ( Количество процессоров на задачу в Spark )
См. Также Каковы преимущества запуска нескольких задач Spark в одной и той же JVM?
Если Spark заранее не знает количество разделов и т. Д., Зачем выделять Исполнителей так рано?
В значительной степени за счет расширения приведенных выше пунктов - исполнители не созданы для обработки конкретной задачи / раздела.Существуют долго выполняющиеся процессы, и пока динамическое распределение не включено, предполагается, что оно будет продолжаться в течение всего срока службы соответствующего приложения / драйвера (прерывание или сбои, а также уже упомянутое динамическое распределение могут повлиять на это, но этобазовая модель).