2015-09-04 29 views
1

我在spark spark scala程序中使用JodaTime時遇到問題。我嘗試了過去在Stackoverflow中發佈的解決方案,他們似乎沒有爲我解決這個問題。調用spark-submit時出現scala和spark的JodaTime問題

當我嘗試火花提交回來與類似如下的錯誤:

sbt package,這似乎是做工精細
15/09/04 17:51:57 INFO Remoting: Remoting started; listening on addresses :   
        [akka.tcp://[email protected]: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) 

後,我調用​​這樣的... ~/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" 
         ) 

我已經試過的喬達時間多個版本和喬達轉換,但不能使用命令行中的spark-submit。但是,它似乎工作時,我在ide(scalaide)中運行。

讓我知道你是否有任何建議或想法。

回答

2

看來你錯過了你的類路徑中的依賴關係。你可以做一些事情:一個是你可以手工添加joda時間瓶子來用spark參數提交,另一個是你可以使用程序集插件並構建一個裝配jar(你可能想要標記spark-核心作爲「提供」,所以它不會在你的程序集中結束),它將擁有你所有的依賴關係。

+0

使用--jars參數工作。我也會嘗試組裝路線。謝謝 – Sai

相關問題