webentwicklung-frage-antwort-db.com.de

Unterschied zwischen SparkContext, JavaSparkContext, SQLContext und SparkSession?

  1. Was ist der Unterschied zwischen SparkContext,JavaSparkContext,SQLContext und SparkSession?
  2. Gibt es eine Methode zum Konvertieren oder Erstellen eines Kontexts mit einem SparkSession?
  3. Kann ich alle Kontexte mit einem einzigen Eintrag SparkSession vollständig ersetzen?
  4. Befinden sich alle Funktionen in SQLContext, SparkContext und JavaSparkContext auch in SparkSession?
  5. Einige Funktionen wie parallelize verhalten sich in SparkContext und JavaSparkContext unterschiedlich. Wie verhalten sie sich in SparkSession?
  6. Wie kann ich mit einem SparkSession Folgendes erstellen?

    • RDD
    • JavaRDD
    • JavaPairRDD
    • Dataset

Gibt es eine Methode, um ein JavaPairRDD in ein Dataset oder ein Dataset in ein JavaPairRDD umzuwandeln?

30
Mostwanted Mani

sparkContext ist ein Scala Implementierungseinstiegspunkt und JavaSparkContext ist ein Java Wrapper von sparkContext.

SQLContext ist der Einstiegspunkt von SparkSQL, der von sparkContext empfangen werden kann. Vor 2.xx waren RDD, DataFrame und Data-Set drei verschiedene Datenabstraktionen. Seit Spark 2.xx, Alle drei Datenabstraktionen sind vereinheitlicht und SparkSession ist der vereinheitlichte Einstiegspunkt von Spark.

Ein zusätzlicher Hinweis ist, dass RDD für unstrukturierte Daten, stark typisierte Daten und DataFrames für strukturierte und lose typisierte Daten gedacht ist. Sie können prüfen

Gibt es eine Methode zum Konvertieren oder Erstellen von Kontext mit Sparksession?

ja. es ist sparkSession.sparkContext() und für SQL sparkSession.sqlContext()

Kann ich den gesamten Kontext mit einem einzigen Eintrag SparkSession vollständig ersetzen?

ja. Sie können entsprechende Kontexte von sparkSession erhalten.

Werden alle Funktionen in SQLContext, SparkContext, JavaSparkContext usw. in SparkSession hinzugefügt?

Nicht direkt. Sie müssen den jeweiligen Kontext abrufen und ihn verwenden. So etwas wie Abwärtskompatibilität

Wie verwende ich eine solche Funktion in SparkSession?

holen Sie sich den jeweiligen Kontext und nutzen Sie ihn.

Wie erstelle ich das Folgende mit SparkSession?

  1. RDD kann aus sparkSession.sparkContext.parallelize(???) erstellt werden
  2. JavaRDD gilt auch hier, jedoch in der Implementierung Java
  3. JavaPairRDD sparkSession.sparkContext.parallelize(???).map(//making your data as key-value pair here is one way)
  4. Datensatz, den sparkSession zurückgibt, ist Datensatz, wenn es sich um strukturierte Daten handelt.
29
Balaji Reddy

Erklärung aus dem spark Quellcode unter branch-2.1

SparkContext: Haupteinstiegspunkt für die Spark -Funktionalität. Ein SparkContext stellt die Verbindung zu einem Spark Cluster dar und kann zum Erstellen von RDDs, Akkumulatoren und Broadcast-Variablen in diesem Cluster verwendet werden.

Pro JVM darf nur ein SparkContext aktiv sein. Sie müssen den aktiven SparkContext stop(), bevor Sie einen neuen erstellen. Diese Einschränkung kann eventuell aufgehoben werden. Weitere Informationen finden Sie in SPARK-2243.

JavaSparkContext: Eine Java-freundliche Version von [[org.Apache.spark.SparkContext]], die [[org.Apache.spark.api.Java.JavaRDD]] zurückgibt und mit Java Sammlungen statt Scala.

Pro JVM darf nur ein SparkContext aktiv sein. Sie müssen den aktiven SparkContext stop(), bevor Sie einen neuen erstellen. Diese Einschränkung kann eventuell aufgehoben werden. Weitere Informationen finden Sie in SPARK-2243.

SQLContext: Der Einstiegspunkt für die Arbeit mit strukturierten Daten (Zeilen und Spalten) in Spark 1.x.

Ab Spark 2.0 wird dies durch [[SparkSession]] ersetzt. Aus Gründen der Abwärtskompatibilität behalten wir die Klasse hier jedoch bei.

SparkSession: Der Einstiegspunkt für die Programmierung von Spark mit der Dataset- und DataFrame-API.

11
Deanzz

Spark-Kontext ist Klasse in Spark API Dies ist die erste Stufe zum Erstellen der spark Anwendung. Funktionalität der spark Kontext ist es, Speicher in RAM wir nennen dies als Treiberspeicher, Zuteilung von Anzahl der Executer und Kerne in Kürze alles über die Cluster-Verwaltung. Spark Context kann verwendet werden, um RDD und gemeinsam genutzte Variablen zu erstellen. Um darauf zuzugreifen, müssen wir ein Objekt davon erstellen.

Auf diese Weise können wir Spark Context :: var sc = new SparkContext () erstellen.

Spark Session Dies ist ein neues Objekt, das hinzugefügt wurde, seit spark= 2.x das Sql Context und Hive Context ersetzt. Früher hatten wir zwei Optionen, wie zum Beispiel Sql Context Die SQL-Operation für Dataframe und zweitens für Hive Context, mit der die mit der Hive-Konnektivität verbundenen Aufgaben verwaltet und die Daten aus den/in die Hive-Tabellen abgerufen/eingefügt werden.

Seit Version 2.x können wir SparkSession für den SQL-Vorgang für Dataframe erstellen. Wenn Sie Hive-bezogene Arbeit haben, rufen Sie einfach die Methode enablehivesupport () auf, und Sie können SparkSession sowohl für Dataframe- als auch für Hive-bezogene SQL-Vorgänge verwenden.

Auf diese Weise können wir einen SparkSession for SQL-Vorgang für Dataframe erstellen

val sparksession = SparkSession.builder (). getOrCreate ();

Die zweite Möglichkeit besteht darin, einen SparkSession for SQL-Vorgang für Dataframe- und Hive-Vorgänge zu erstellen.

val sparkSession = SparkSession.builder (). enableHiveSupport (). getOrCreate ()

1
Nilesh Shinde

Ich werde nur über Spark Version 2.x sprechen.

SparkSession: Dies ist ein Haupteinstiegspunkt für Ihre spark) - Anwendung. Damit Sie Code für Ihren Spark ausführen können, müssen Sie diesen als Erstes erstellen.

from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local").appName("Word Count")\
.config("spark.some.config.option", "some-value")\
.getOrCreate()

SparkContext: Es ist ein inneres Objekt (Eigenschaft) von SparkSession. Es wird verwendet, um mit Low-Level API Zu interagieren. Mit SparkContext können Sie RDD, accumlator und Broadcast variables Erstellen.

in den meisten Fällen benötigen Sie SparkContext nicht. Sie können SparkContext von SparkSession erhalten

val sc = spark.sparkContext
0
Gaurang Shah