我正在使用scalaVersion := "2.10.5"
和libraryDependencies += "org.rogach" %% "scallop" % "3.1.2".
获取以下错误:线程" main"中的异常 java.lang.NoSuchMethodError: 。scala.collection.immutable $ $结肠colon.hd $ 1()Ljava /郎/对象;在 org.rogach.scallop.DefaultConverters $$匿名$ 2.parse(DefaultConverters.scala:27) 在 org.rogach.scallop.ValueConverter $ class.parseCached(ValueConverter.scala:21) 在 org.rogach.scallop.DefaultConverters $$匿名$ 2.parseCached(DefaultConverters.scala:24) 在 org.rogach.scallop.Scallop $$ anonfun $验证$ 17.apply(Scallop.scala:632) 在 org.rogach.scallop.Scallop $$ anonfun $验证$ 17.apply(Scallop.scala:630) 在scala.collection.immutable.List.foreach(List.scala:381)at org.rogach.scallop.Scallop.verify(Scallop.scala:630)at org.rogach.scallop.ScallopConfBase.verifyBuilder(ScallopConfBase.scala:405) 在 org.rogach.scallop.ScallopConfBase.verify(ScallopConfBase.scala:744) 在 。com.unity3d.ads.conf.OperativeEventConverterConf(OperativeEventConverterConf.scala:50) 在com.unity3d.ads.analytics.TestClass $ .main(TestClass.scala:51)at at com.unity3d.ads.analytics.TestClass.main(TestClass.scala)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)at org.apache.spark.deploy.SparkSubmit $ .ORG $阿帕奇$火花$部署$ SparkSubmit $$ runMain(SparkSubmit.scala:738) 在 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)at at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
完全相同的代码与scalaVersion := "2.11.8"
不幸的是,我必须使用2.10.5,因为我使用的是火花版1.6。
示例代码:
`import org.rogach.scallop.{ScallopConf, ScallopOption, Serialization, ValueConverter, singleArgConverter}
class TestClass(args: Seq[String]) extends ScallopConf(args) with Serialization {
val testInput: ScallopOption[String] =
opt[String](
name = "test.input",
descr = "test",
required = false,
default = Option("testPath"))
verify()
}
`
我是否可以使用此解决方法使其与scala 2.10.5一起使用?
答案 0 :(得分:0)
回答我的问题以防其他人面临类似的问题。
这结果是类路径问题。问题的根本原因:
我使用spark 2.1运行使用spark 1.6版本编译的代码。显然,1.6使用scala 2.10 ..而spark 2.1使用scala 2.11 ...