В любом случае, один рабочий узел может знать текущее состояние других узлов. Допустим, у меня есть JavaRDD кандидатов, и они отсортированы. Теперь я хочу выбрать 10 лучших из них и произвести соответствующие расчеты. Есть ли способ, чтобы рабочие узлы знали, выбраны ли уже 10 лучших кандидатов?
JavaRDD<String> picked = sortedCandidates.map (candidate -> {
// below are logic not the actual code
if number of picked < 10 // HOW TO GET THIS CONDITION CHECK
then pick this one;
do corresponding computation;
});
Я думал об использовании аккумулятора, чтобы узнать, сколько кандидатов выбрано. Но затем понять, что значение аккумулятора можно прочитать только в главном узле (как указано в названии, он накапливает результат от рабочих узлов к главному).
Мне интересно, есть ли способ достичь моей цели? Пожалуйста помоги.