So erstellen Sie SparkSession aus dem vorhandenen SparkContext

8

Ich habe eine Spark-Anwendung, die die neue API von Spark 2.0 mit SparkSession verwendet. Ich baue diese Anwendung auf der anderen Anwendung, die SparkContext verwendet. Ich möchte SparkContext an meine Anwendung weitergeben und SparkSession mit der vorhandenen SparkContext initialisieren.

Wie auch immer, ich konnte keinen Weg finden, das zu tun. Ich fand, dass SparkSession -Konstruktor mit SparkContext privat ist, also kann ich es nicht auf diese Weise initialisieren und der Builder bietet keine setSparkContext -Methode an. Denkst du, dass es einen Workaround gibt?

    
Stefan Repcek 21.03.2017, 18:20
quelle

4 Antworten

7

Offenbar gibt es keine Möglichkeit, SparkSession von existierendem SparkContext zu initialisieren.

    
Stefan Repcek 12.04.2017, 14:44
quelle
7

Wie im obigen Beispiel können Sie nicht erstellen, da der Konstruktor SparkSession privat ist Stattdessen können Sie mit dem SQLContext eine SparkContext erstellen und später die Sparksession aus dem sqlcontext wie folgt abrufen

%Vor%

Hoffe, das hilft

    
Partha Sarathy 01.06.2017 09:55
quelle
5
%Vor%     
Mostwanted Mani 28.04.2017 05:01
quelle
1

Sie hätten bemerkt, dass wir SparkSession und SparkContext verwenden, und dies ist kein Fehler. Lassen Sie uns die Annalen der Spark-Geschichte für eine Perspektive erneut besuchen. Es ist wichtig zu verstehen, woher wir kommen, wie Sie für einige Zeit von diesen Verbindungsobjekten hören werden.

Vor Spark 2.0.0 waren die drei Hauptverbindungsobjekte SparkContext, SqlContext und HiveContext. Das SparkContext-Objekt war die Verbindung zu einer Spark-Ausführungsumgebung und erstellte RDDs und andere, SQLContext arbeitete mit SparkSQL im Hintergrund von SparkContext und HiveContext interagierte mit den Hive-Speichern.

Spark 2.0.0 führte Datasets / DataFrames als die Hauptschnittstelle für die verteilte Datenabstraktion und das SparkSession-Objekt als Einstiegspunkt in eine Spark-Ausführungsumgebung ein. Zweckmäßig wird das SparkSession-Objekt in dem Namespace org.apache.spark.sql.SparkSession (Scala) oder pyspark.sql.sparkSession gefunden. Ein paar Punkte zu beachten sind wie folgt:

In Scala und Java bilden Datasets die Hauptdatenabstraktion als typisierte Daten; Bei Python und R (die keine Überprüfung des Kompilierzeittyps haben) sind die Daten jedoch ...

Ссылка

    
Raider Yang 26.01.2018 06:33
quelle