我在 spark scala 程序中使用 JodaTime 时遇到问题。我尝试了过去在 Stackoverflow 中发布的解决方案,但它们似乎并没有为我解决问题。
当我尝试 spark-submit 时,它会返回如下错误:
15/09/04 17:51:57 INFO Remoting: Remoting started; listening on addresses :
[akka.tcp://sparkDriver@100.100.100.81:56672]
Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/DateTimeZone
at com.ttams.xrkqz.GenerateCsv$.main(GenerateCsv.scala:50)
at com.ttams.xrkqz.GenerateCsv.main(GenerateCsv.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
之后sbt package
,这似乎工作正常,我spark-submit
这样调用......
~/spark/bin/spark-submit --class "com.ttams.xrkqz.GenerateCsv" --master local target/scala-2.10/scala-xrkqz_2.10-1.0.jar
在我的 build.sbt 文件中,我有
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.4.1"
libraryDependencies ++= Seq ("joda-time" % "joda-time" % "2.8.2",
"org.joda" % "joda-convert" % "1.7"
)
我尝试了多个版本的 joda-time 和 joda-convert,但无法从命令行使用 spark-submit。但是,当我在 ide (scalaide) 中运行时,它似乎可以工作。
如果您有任何建议或想法,请告诉我。