Jestem nowy w scala i iskra. Dzisiaj próbowałem napisać jakiś kod i pozwolić mu działać na iskrze, ale dostałem wyjątek.kod scala wyrzucać wyjątek w iskrze
ta praca kod w lokalnym Scala
import org.apache.commons.lang.time.StopWatch
import org.apache.spark.{SparkConf, SparkContext}
import scala.collection.mutable.ListBuffer
import scala.util.Random
def test(): List[Int] = {
val size = 100
val range = 100
var listBuffer = new ListBuffer[Int] // here throw an exception
val random = new Random()
for (i <- 1 to size)
listBuffer += random.nextInt(range)
listBuffer.foreach(x => println(x))
listBuffer.toList
}
ale kiedy mogę umieścić ten kod na iskry, to wyjątek mówi:
15/01/01 14:06:17 INFO SparkDeploySchedulerBackend: SchedulerBackend is ready for scheduling beginning after reached minRegisteredResourcesRatio: 0.0
Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime.ObjectRef.create(Ljava/lang/Object;)Lscala/runtime/ObjectRef;
at com.tudou.sortedspark.Sort$.test(Sort.scala:35)
at com.tudou.sortedspark.Sort$.sort(Sort.scala:23)
at com.tudou.sortedspark.Sort$.main(Sort.scala:14)
at com.tudou.sortedspark.Sort.main(Sort.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:358)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
gdybym skomentować poniższy kod, praca kod w iskrze
for (i <- 1 to size)
Czy ktoś może wyjaśnić, dlaczego?
Co to jest linia 35 pliku Sort.scala? Linia 'new ListBuffer'? Wydaje się dziwne, że rzuca wyjątek, który znika po usunięciu na później. Opublikuj pełny przykład, który kończy się niepowodzeniem z iskrą –
Wygląda to na niezgodność wersji scala. Sprawdź, czy wersja używanej scala odpowiada wersji, na którą została zbudowana iskra, oraz wersja klastra, z której korzystasz. – lmm