Я пытаюсь понять уровень локальности кластера Spark и его связь с количеством разделов RDD вместе с действием, выполняемым на нем. В частности, у меня есть фрейм данных, в котором количество разделов равно 9647. Затем я выполнил df.count
на нем и заметил следующее в пользовательском интерфейсе Spark:
![enter image description here](https://i.stack.imgur.com/PlO2e.png)
Немного контекста. Я отправил свою работу в кластер Yarn со следующей конфигурацией:
- executor_memory='10g',
- driver_memory='10g',
- num_executors='5',
- executor_cores=5'
Также я заметил, что все исполнители были с 5 разных узлов (хостов).
Из рисунка я обнаружил, что из всех 9644 задач более 95% не выполнялись на одном узле. Итак, мне просто интересно, почему так много с rack_local. В частности, почему бы узлу не выбрать ближайший источник данных для выполнения, другими словами, иметь больше локальных узлов?
Спасибо