управление порядком, в котором разделы обрабатываются в spark

#apache-spark #apache-spark-2.0

#apache-spark #apache-spark-2.0

Вопрос:

Итак, для оптимального использования моего кластерного процессора я хотел бы, чтобы мои разделы обрабатывались примерно в порядке, указанном MyPartitioner.getPartition(key) . Я знаю, что они обрабатываются параллельно, и порядок их обработки нельзя полностью контролировать, но, по крайней мере, могу ли я контролировать порядок, в котором драйвер отправляет задачи исполнителям?

Что-то вроде :

  task 0 - process partition 0
 task 1 - process partition 1
 ...
 task n - process partition n
  

Комментарии:

1. какова цель, стоящая за этим? если вы хотите максимально использовать свой процессор, размер ваших разделов должен быть одинаковым. почему бы не использовать перераспределение или объединение?

2. Я знаю это, но я не могу выполнить перераспределение и не могу сделать разделы равными.

Ответ №1:

Короче говоря, невозможно контролировать порядок обработки разделов в spark. Единственное, что можно сделать, это убедиться, что разделы более или менее равны