스칼라와 스파크를 처음 사용합니다. 오늘 나는 코드를 작성하려고했지만 코드가 실행되도록했습니다. 예외가있었습니다.스칼라에서 스칼라 코드 예외가 발생했습니다.
지역 스칼라
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
}
하지만 불꽃이 코드를 넣을 때, 그것은 예외를 throw를이 코드가 작동 말한다 :
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' 행? 그것은 나중에 예외를 제거 할 때 사라지는 예외를 throw하는 것이 이상하게 보입니다. 스파크로 인해 실패한 예제를 게시하십시오 –
이것은 스칼라 버전이 일치하지 않는 것 같습니다. 사용하고있는 스칼라 버전이 스파크가 만들어진 버전과 현재 실행중인 클러스터의 버전과 일치하는지 확인하십시오. – lmm