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?
Offenbar gibt es keine Möglichkeit, SparkSession
von existierendem SparkContext
zu initialisieren.
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
Hoffe, das hilft
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 ...
Tags und Links scala apache-spark apache-spark-2.0