2016-07-08 19 views
2

Wenn eine Scala-Datei ausgeführt wird, der den Funken Dataset Typ verwendet ich die folgende Stack-Trace erhalten:java.lang.ClassNotFoundException: org.apache.spark.sql.Dataset

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/Dataset 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
    at java.lang.Class.getMethod0(Class.java:3018) 
    at java.lang.Class.getMethod(Class.java:1784) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:125) 
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.Dataset 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 6 more 

Ich finde das seltsam, denn ich habe der folgende Import:

import org.apache.spark.sql._ 

auch in meinem build.sbt ich habe das zu libraryDependencies hinzugefügt folgenden:

"org.apache.spark" %% "spark-core" % "1.6.2" % "provided", 
    "org.apache.spark" %% "spark-sql" % "1.6.2" % "provided", 
+2

Wie läuft das? Wenn Sie sich bei einem Cluster anmelden, ist es möglich, dass die Spark-Version dort nicht korrekt ist? –

+1

wo fährst du das? Sie schließen die Spark-Kern- und SQL-Bibliotheken aus Ihrem Paket in Ihrer Build-Datei aus. – GameOfThrows

Antwort

9

Wenn Sie diesen Standalone ausführen, können Sie versuchen, provided aus Ihren Abhängigkeiten zu entfernen. Bereitgestellt bedeutet, dass Sie erwarten, dass die Abhängigkeiten beim Ausführen dieser Anwendung bereits im Klassenpfad vorhanden sind. Daher werden die Spark-Abhängigkeiten nicht in Ihrem Jar enthalten sein, wenn Sie provided verwenden.

0

Ihre Datei "build.sbt" hat angegeben, dass die Funkenabhängigkeiten für den Klassenpfad der Anwendung bereitgestellt werden, sie konnten jedoch nicht gefunden werden. Wenn Sie nicht auf einem Cluster ausgeführt werden, können Sie versuchen, das "Zur Verfügung gestellte" aus Ihrer Datei build.sbt zu entfernen oder die Spark-Abhängigkeiten auf Ihren Klassenpfad zu setzen.

Verwandte Themen