我試圖運行星火純Scala代碼類似,這些職位時有錯誤斯卡拉SEQ行:this和this的NoSuchMethodError在星火
他們的問題是,他們使用的是錯誤的Scala版本編譯的Spark項目。不過,我的是正確的版本。
我在AWS EMR集羣上安裝了Spark 1.6.0以運行該程序。該項目在我的本地機器上編譯,安裝了Scala 2.11,2.11列出了所有依賴項和構建文件,沒有提及2.10。
這是引發錯誤的確切行:
var fieldsSeq: Seq[StructField] = Seq()
這是確切的錯誤:
Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime.ObjectRef.create(Ljava/lang/Object;)Lscala/runtime/ObjectRef;
at com.myproject.MyJob$.main(MyJob.scala:39)
at com.myproject.MyJob.main(MyJob.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:497)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
你能舉個例子嗎? –
Spark 1.6基於Scala 2.10而不是2.11。你是否專門爲2.11編譯了Spark?第二個鏈接的接受答案是這個問題 - 二進制編譯爲2.11在Spark上運行(2.10)。 –
我剛剛在Spark網站上看過,你說的對--Spark 1.6仍然基於2.10。一位同事告訴我,1.6將Scala版本提高到了2.11,這就是我過去幾周所使用的。我的其他Spark工作也工作得很好。 – mcmcmc