JodaTime 在调用 spark-submit 时出现 scala 和 spark 问题
JodaTime issues with scala and spark when invoking spark-submit
我在 spark scala 程序中使用 JodaTime 时遇到问题。我尝试了过去在 Whosebug 中发布的解决方案,但它们似乎无法为我解决问题。
当我尝试 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) 中 运行 时,它似乎起作用了。
如果您有任何建议或 ide请告诉我。
您的 class 路径中似乎缺少依赖项。你可以做几件事:一个是你可以手动添加 joda time jars 以使用 --jars 参数提交 spark submit,另一个是你可以使用 assembly 插件并构建一个 assembly jar(你可能想要标记 spark-核心作为 "provided" 所以它不会在你的程序集中结束)这将包含你的所有依赖项。
我在 spark scala 程序中使用 JodaTime 时遇到问题。我尝试了过去在 Whosebug 中发布的解决方案,但它们似乎无法为我解决问题。
当我尝试 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) 中 运行 时,它似乎起作用了。
如果您有任何建议或 ide请告诉我。
您的 class 路径中似乎缺少依赖项。你可以做几件事:一个是你可以手动添加 joda time jars 以使用 --jars 参数提交 spark submit,另一个是你可以使用 assembly 插件并构建一个 assembly jar(你可能想要标记 spark-核心作为 "provided" 所以它不会在你的程序集中结束)这将包含你的所有依赖项。