2016-12-16 6 views
0

Ich kann den Scala-Code nicht kompilieren, ein Abhängigkeitsfehler taucht auf!Abhängigkeit nicht aufgelöst

aber ich eine andere Beispielanwendung haben, die mit vorhandenen Setup funktioniert gut, wird dieser Code nicht auf dem gleichen Bogen Arbeits

: Fehlerprotokolle

:sbt compile 
[info] Set current project to firstScalaScript (in build file:/home/abu/Current%20Workspace/) 
[info] Updating {file:/home/abu/Current%20Workspace/}current-workspace... 
[info] Resolving org.apache.spark#spark-core;2.0.1 ... 
[warn] module not found: org.apache.spark#spark-core;2.0.1 
[warn] ==== local: tried 
[warn] /home/abu/.ivy2/local/org.apache.spark/spark-core/2.0.1/ivys/ivy.xml 
[warn] ==== public: tried 
[warn] https://repo1.maven.org/maven2/org/apache/spark/spark-core/2.0.1/spark-core-2.0.1.pom 
[warn] ==== Akka Repository: tried 
[warn] http://repo.akka.io/releases/org/apache/spark/spark-core/2.0.1/spark-core-2.0.1.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: org.apache.spark#spark-core;2.0.1: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] 
[warn] Note: Unresolved dependencies path: 

mein Code:

import scala.io.Source._ 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 
import org.apache.log4j.Logger 
import org.apache.log4j.Level 
import org.apache.spark.rdd.RDD 
import org.apache.hadoop.io.compress.GzipCodec 

object firstScalaScript{ 
    def main(args: Array[String]) 
    { 
     val sc=new SparkContext(new SparkConf()) 
     val rdd=sc.textFile("e.txt,r.txt").collect() 
     //rdd.saveAsTextFile("confirmshot.txt"); sc.stop() 
    } 
} 
+0

mein Code: import scala.io.Source._ Import org.apache.spark.SparkContext Import org.apache.spark.SparkContext._ Import org.apache.spark.SparkConf Import org.apache.log4j .Logger import org.apache.log4j.Level import org.apache.spark.rdd.RDD import org.apache.hadoop.io.compress.GzipCodec Objekt firstScalaScript { def main (args: Array [String]) { \t val sc = neu SparkContext (new SparkConf()) \t val rdd = sc.textDatei ("e.txt, r.txt"). Collect() \t //rdd.saveAsTextFile("confirmshot.txt "); \t sc.stop() \t} } –

+2

Bearbeiten Sie Ihre Frage mit Ihrem Code-Block (und die richtige Formatierung einrichten) anstelle von Kommentaren für den gleichen Zweck. –

Antwort

1

Spark-Artefakte (und die von vielen anderen Bibliotheken) sind für verschiedene Versionen von Scala verpackt und verteilt. Um zwischen ihnen zu unterscheiden, wird die Scala-Version am Ende des Artefaktnamens angefügt, z. spark-core_2.10 oder spark-core_2.11.

Ihre spark-core Abhängigkeit ist unvollständig, da die Scala-Version fehlt.

SBT kann Ihnen helfen, die zur Laufzeit verwendete Scala-Version an den Artefaktnamen anzuhängen. Sie können die Abhängigkeit als

"org.apache.spark" %% "spark-core" % "2.0.1" 

hinzufügen und das wird übersetzen zu

"org.apache.spark" % "spark-core_YOUR_SCALA_VERSION" % "2.0.1" 

Alle Details zu diesem Jar in Maven finden. Beachten Sie, dass Sie auf dieser Seite Vorschläge zum Importieren der Lib mit anderen Tools wie Maven oder Gradle finden können.

0

Spark-Abhängigkeiten haben zusätzliche Nummer in artifactId - Scala-Version

Es sollte spark-core_2.11 zum Beispiel für Scala 2.11

In SBT sollte es sein:

// Scala version will be added by SBT while building 
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.2" 

oder:

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.2" 

Hinweis: zweite Version soll nicht mit Bibliotheken verwendet werden, die hat Scala Abhängigkeit, weil der erste automatisch das richtige Artefakt auswählt. Verwenden Sie es nur mit Nicht-Scala-Abhängigkeiten

+0

Ich würde nicht einmal die zweite erwähnen, es ist eine schlechte Angewohnheit. – Reactormonk

+0

@Reactormonk Ja, es ist eine schlechte Angewohnheit, aber es zeigt, wie es funktioniert. Später werde ich Antwort bearbeiten, um sich auf das zu konzentrieren :) –

+0

@Reactormonk Geändert :) Vielen Dank für Ihre Vorschläge zu diesem :) –

Verwandte Themen