Изменение количества исполнителей в Spark во время выполнения

#apache-spark

#apache-spark

Вопрос:

Может ли Spark изменять количество исполнителей во время выполнения?

Например, в действии (задании) этап 1 выполняется с 4 исполнителями * 5 разделами на исполнителя = 20 разделов параллельно.

  1. Если я перераспределю с помощью .repartition(100), который сейчас находится на этапе 2 (из-за перетасовки перераспределения), может ли в любом случае Spark увеличиться с 4 исполнителей до 5 исполнителей (или более)?
  2. Если я кэширую некоторые данные на этапе 1, который выполнялся с 4 исполнителями * 5 разделов на исполнителя = 20 разделов, то кэшированные данные должны находиться в оперативной памяти 4 компьютеров. Если я перераспределю с помощью .repartition(2), в этом случае определенно будет задействовано <= 2 машины-исполнителя. Будет ли spark перемещать мои кэшированные данные в активные задачи?