Как эффективный способ обновить стоимость в СДР Spark?

Я пишу графическую программу вScala сSpark, Набор данных имеет 4 миллиона узлов и 4 миллиона ребер (вы можете рассматривать это как дерево), но каждый раз (Iteration), Я редактирую только его часть, а именно поддерево с корнем данного узла и узлы на пути между данным узлом и корнем.

Iteration имеет зависимость, что означаетi+1 Iteration нужен результат изi, Так что мне нужно хранить результат каждогоIteration для следующего шага.

Я пытаюсь найти эффективный способ обновленияRDD, но пока понятия не имею. Я считаю, чтоPairRDD иметьlookup функция, которая может сократить время вычислений отO(N), тоже(M),N Обозначим общее количество объектов вRDD а такжеM обозначим количество элементов в каждом разделе.

Так что я думаю, есть ли возможность обновить объект вRDD сO(M)? Или, в идеале, O (1)? (Я вижу электронное письмо в списке рассылки Spark о том, чтоlookup может быть изменен для достижения O (1)

Другое дело, если бы я мог достичьO(M) для обновленияRDDМогу ли я увеличить раздел до некоторого числа, большего количества ядер, которое у меня есть, и добиться лучшей производительности?

Ответы на вопрос(3)

Ваш ответ на вопрос