java - Spark does not find Scala specific methods -


the problem every job fails following exception:

exception in thread "main" java.lang.nosuchmethoderror: scala.predef$.refarrayops([ljava/lang/object;)[ljava/lang/object; @ ps.sparkapp.classification$.main(classification.scala:35) @ ps.sparkapp.classification.main(classification.scala) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.apache.spark.deploy.sparksubmit$.org$apache$spark$deploy$sparksubmit$$runmain(sparksubmit.scala:743) @ org.apache.spark.deploy.sparksubmit$.dorunmain$1(sparksubmit.scala:187) @ org.apache.spark.deploy.sparksubmit$.submit(sparksubmit.scala:212) @ org.apache.spark.deploy.sparksubmit$.main(sparksubmit.scala:126) @ org.apache.spark.deploy.sparksubmit.main(sparksubmit.scala) 

this exception meas task can not find method. develop using intelij community edition. have no problems compiling package. dependencies packaged correctly. here build.sbt:

name := "sparkapp" version := "1.0"  scalaversion := "2.11.6"  librarydependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.1" librarydependencies += "org.apache.spark" % "spark-mllib_2.11" % "2.1.1"    scala -version   scala code runner version 2.11.6 -- copyright 2002-2013, lamp/epfl 

i found out error has somehow scala because happens when use functionality native scala, e.g scala loop, .map or .drop(2). class , still written in scala, if avoid functionality .map or drop(2) works fine.

import org.apache.spark.ml.feature.vectorassembler import org.apache.spark.sql.sparksession import org.apache.spark.ml.linalg.vector  object classification {    def main(args: array[string]) {     ...     //df.printschema()     var dataset = df.groupby("user_id","measurement_date").pivot("rank").min()      val col = dataset.schema.fieldnames.drop(2) // <- here error happens      // take features , put them 1 vector     val assembler = new vectorassembler()       .setinputcols(col)       .setoutputcol("features")      val data = assembler.transform(dataset)     data.printschema()     data.show()      sc.stop()   }  } 

as said if not use .drop(2) works perfectly, avoiding these methods no option since painful..

i not find solution on web, ideas?

btw: can use these methods within spark-shell, find strange.

thanks in advance.

note 1)

i use: spark version 2.1.1

using scala version 2.11.8 (openjdk 64-bit server vm, java 1.8.0_131)

try adding actual scala libraries etc project dependency. e.g.:

librarydependencies += "org.scala-lang" % "scala-library" % "2.11.6"


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -