2016-12-20 2 views
0

Ich versuche, den Zeitunterschied von T1 und T2 zu berechnen. Mein Code in Funken Schale ist wie folgt:So berechnen Sie die Zeitdifferenz mit nscala_time in Spark

scala> import com.github.nscala_time.time.Imports._ 
import com.github.nscala_time.time.Imports._ 
scala> import org.joda.time.DateTime 
import org.joda.time.DateTime 

scala> val T1 = DateTime.parse("2014-10-12T10:32:32") 
T1: org.joda.time.DateTime = 2014-10-12T10:32:32.000+08:00 
scala> val T2 = DateTime.parse("2014-10-12T10:33:32") 
T2: org.joda.time.DateTime = 2014-10-12T10:33:32.000+08:00 
scala> val diff = (T1 to T2).millis/1000 
diff: Long = 60 

alles funktioniert. Also habe ich den gleichen Code mit sbt funken einreichen: enter image description here

meine Abhängigkeitsdatei ist wie folgt: enter image description here

einreichen Code:

spark-shell --class "YourApp" --jars /usr/local/spark/lib_third/nscala-time-master/target/scala-2.10/nscala-time_2.10-2.15.0-SNAPSHOT.jar ~/Spark_nscala2/target/scala-2.10/YourApp_2.10-1.0.jar 

Doch es ging schief:

Exception in thread "main" java.lang.NoSuchMethodError: com.github.nscala_time.time.Imports$.RichReadableInstant(Lorg/joda/time/ReadableInstant;)Lcom/github/nscala_time/time/RichReadableInstant; 
    at YourApp$.main(YourApp.scala:15) 
    at YourApp.main(YourApp.scala) 

Ausnahme zeigt das Problem kommt aus diesem Satz:

es macht keinen Sinn für mich, der gleiche Code funktioniert in Spark-Shell aber schlägt fehl, wenn sie gesendet wird. Kann mir jemand sagen, wo das Problem liegt? Vielen Dank im Voraus!

Antwort

0

ich es herauszufinden versucht myself.I eine andere Version von nscala_time Glas, und verändert die Abhängigkeit dementsprechend die Problem ist behoben.

0

try Ihre Dritten jar --driver-Klasse-Weg, sowie hinzufügen, wie --jars

+0

nein, alter Fehler – Liaoxiaochen