Я использую spark для ввода файлов, и по некоторым причинам нескольким последним разделам файла требуется больше времени для вычислений, что приводит к перекосу данных.
![part of the last tasks](https://i.stack.imgur.com/2sHsR.png)
Итак, я хочу найти способ сначала вычислить последние разделы, которые будут охватывать токен более длительного времени последними разделами.
У меня есть общее понимание процесса вычисления искры.
DAGScheduler
создает этапы и отправляет этап в виде TaskSet
.
- В
TaskSchedulerImpl
мы можем указать SchedulingMode
, но это для разных этапов.
- Каждый
TaskSet
соответствует TaskSetManager
, который планирует задачи.
Я нашел следующий код в TaskSetManager
// Add all our tasks to the pending lists. We do this in reverse order
// of task index so that tasks with low indices get launched first.
for (i <- (0 until numTasks).reverse) {
addPendingTask(i)
}
Так есть ли возможность изменить порядок запуска задач?