Spark Accumulator-Wert wird von Task @ nicht geles
Ich initialisiere einen Akku
final Accumulator<Integer> accum = sc.accumulator(0);
Und dann, während ich mich in der Kartenfunktion befinde, versuche ich, den Akkumulator zu erhöhen und dann den Akkumulatorwert zum Einstellen einer Variablen zu verwenden.
JavaRDD<UserSetGet> UserProfileRDD1 = temp.map(new Function<String, UserSetGet>() {
@Override
public UserSetGet call(String arg0) throws Exception {
UserSetGet usg = new UserSetGet();
accum.add(1);
usg.setPid(accum.value().toString();
}
});
Aber ich erhalte den folgenden Fehler.
16/03/14 09:12:58 ERROR executor.Executor: Ausnahme in Task 0.0 in Stage 2.0 (TID 2) java.lang.UnsupportedOperationException: Der Akkumulatorwert in Task @ kann nicht gelesen werde
EDITED - Laut der Antwort von Avihoo Mamka ist es nicht möglich, den Akkumulatorwert in Tasks zu ermitteln.
So gibt es sowieso das kann ich gleich parallel erreichen. So dass der Pid-Wert jedes Mal gesetzt wird, wenn eine Variable (z. B. eine statische Variable) in meiner Map-Funktion inkrementiert wird.