J'ai une question indiquant que la valeur de la variable DefaultMutableTreeNode est remplacée par défaut une fois utilisée dans la fonction Spark mapToPair(). Voici mon code:Valeur DefaultMutableTreeNode définie comme valeur par défaut lors de l'utilisation de Spark mapToPair
public class CA implements Serializable{
private final JavaRDD<String> input;
private final List<IB> bList;
public boolean FuncWithSpark(){
/*
!!!at this point, bList.get(0).getD().getRoot() return a valid tree node
*/
JavaRDD<Boolean> counters = input.mapToPair(new PairFunction<String, String, List<String>>() {
@Override
public Tuple2<String, List<String>> call(String s) throws Exception {
/*
!!!at this point, bList.get(0).getD().getRoot() return an uninitialized tree node with default values
*/
...
}
}
}
public CA(JavaRDD<String> input, List<IB> bList) {
this.input = input;
this.bList = bList;
}
}
Interfaces IB, ID, les classes CB et CD sont définis comme:
public interface IB {
...
}
public interface ID {
...
}
public class CB implements IB, Serializable{
private final ID d;
public ID getD(){
return this.d;
}
}
public class CD implements ID, Serializable{
private DefaultMutableTreeNode rootNode;
public DefaultMutableTreeNode getRoot(){
return this.rootNode;
}
}
La question est, ce qui est arrivé à la variable de type DefaultMutableTreeNode dans CA.FuncWithSpark()? Est-ce à cause de la transformation Spark, ou les variables membres de DefaultMutableTreeNode sont-elles protégées et aucun accesseur ne leur est associé? S'il vous plaît donnez-moi une direction pour résoudre ce problème. Merci pour toute aide à l'avance !.