summary: Spark-shell fails to redefine values in some cases, this is at least found in a case where "implicit" is involved, but not limited to such cases
run the following in spark-shell, u can see that the last redefinition does not take effect. the same code runs in plain scala REPL without problems scala> class Useless{} defined class Useless scala> class Useless1 {} defined class Useless1 scala> implicit val eee :Useless = new Useless() eee: Useless = Useless@2c6beb3e scala> implicit val eee:Useless1 = new Useless1() eee: Useless1 = Useless1@66cb003 scala> eee res24: Useless = Useless@1ec5bf62