Да, такой сценарий возможен. В этом случае некоторые ядра будут простаивать. Сценарий ios где это может произойти:
- Вы вызываете
coalesce
или repartition
с количеством разделов <количество ядер </li> - вы используете номер по умолчанию
spark.sql.shuffle.partitions
(= 200) и у вас доступно более 200 ядер. Это будет проблемой для объединений, сортировки и агрегирования. В этом случае вы можете увеличить spark.sql.shuffle.partitions
Обратите внимание, что даже если у вас достаточно задач, некоторые (или большинство) из них могут быть пустыми. Это может произойти, если у вас большой перекос данных или вы делаете что-то вроде groupBy()
или Window
без partitionBy
. В этом случае пустые разделы будут немедленно завершены, и большинство ваших ядер будут бездействовать