Ich habe Ссылка kopiert in ein neues Projekt und richten Sie eine build.sbt
ein %Vor%Ich bin in der Lage, es von IntelliJ 2016.2.5 zu bauen, aber ich, wenn ich den Fehler
bekomme %Vor%Ich kann sogar auf SparkSession klicken und zum Quellcode gelangen. Was ist das Problem?
Wenn Sie provided
für Ihre Abhängigkeit angeben, wird der Build für diese Abhängigkeit kompiliert, aber zur Laufzeit nicht zum Klassenpfad hinzugefügt (es wird angenommen, dass er bereits dort ist).
Das ist die richtige Einstellung beim Erstellen von Spark-Jobs für spark-submit
(weil sie innerhalb eines Spark-Containers ausgeführt werden, der die Abhängigkeit bereitstellt, und ein zweites Mal würde Probleme verursachen).
Wenn Sie jedoch lokal arbeiten, benötigen Sie diese Abhängigkeit. Entweder ändere den Build so, dass er nicht provided
hat (aber dann musst du ihn beim Erstellen anpassen, um den Job zu übergeben), oder konfiguriere deinen Laufzeitklassenpfad in der IDE, um diese JAR-Datei zu haben.
In meinem Fall habe ich meinen lokalen Cloudera CDH 5.9.0-Cluster verwendet, wobei Spark 1.6.1 standardmäßig installiert und Spark 2.0.0 als Paket installiert wurde. Daher verwendete spark-submit
Spark 1.6.1 und spark2-submit
Spark 2.0.0. Da SparkSession in Version 1.6.1 nicht vorhanden war, wurde der Fehler ausgelöst. Mit dem richtigen Befehl spark2-submit
wurde das Problem behoben.
Ok, ich bin hier gelandet nach einem Link auf sbt gitter channel auf der Suche nach etwas anderem. Ich habe eine Lösung dafür. Thilo hat das Problem richtig beschrieben. Ihr sbt sagt "bereitgestellt", was für Ihre Zielumgebung korrekt ist, wenn Sie es auf Ihrem Cluster ausführen, wo Spark-Bibliotheken bereitgestellt werden, aber wenn Sie lokal in IntelliJ laufen, müssen Sie diese externen Bibliotheken zur Laufzeit "zur Verfügung stellen" und a Möglichkeit, das zu tun wäre
Beachten Sie, dass Sie diesen Vorgang möglicherweise wiederholen müssen, wenn Sie IntelliJ neu gestartet haben. Ich fand dies für IntelliJ IDEA 2016.3.6 auf OS X El Captain.
Tags und Links scala apache-spark