スカラとスパークを初めて使用しています。今日、私はいくつかのコードを書こうとしましたが、それはスパークで動作させましたが、例外がありました。スカラコードでスクロール例外をスローする
ローカル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
}
が、私は火花にこのコードを入れたとき、それは言う例外をスロー:私は以下のコード、コードの作業をコメントアウト場合
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)
スパーク
for (i <- 1 to size)
に誰かが、なぜ下さい説明することができます。
Sort.scalaの35行目は何ですか? '新しいListBuffer'行ですか?あなたが後でそれを削除するときに消える例外をスローするのは奇妙に思えます。スパークで失敗する完全な例を投稿してください –
これはスカラーのバージョンの不一致のようです。使用しているスカラーのバージョンが、そのスパークが作成されたバージョンと、実行しているクラスター上のバージョンと一致することを確認します。 – lmm