Здесь, кажется, немного путаницы.
Оптимальная локальность данных (локальный узел) - это то, чего мы хотим достичь, а не гарантировать.Все, что может сделать Spark - это запросить ресурсы (например, с помощью YARN - Как YARN знает локальность данных в Apache spark в режиме кластера ) и надеяться, что он получит ресурсы, которые удовлетворяют ограничениям на локальность данных.
Если этого не произойдет, он будет просто получать данные с удаленных узлов.Однако это не случайное перемешивание.Это просто простая передача по сети.
Итак, чтобы ответить на ваш вопрос - Spark будет использовать выделенный ресурс, пытаясь сделать все возможное, чтобы удовлетворить ограничения.Он не может использовать узлы, которые не были получены, поэтому он не будет автоматически получать дополнительные узлы для чтения.