Frage

Ich muss ein paar Variablen in meinem Jupyter-Notizbuch festlegen, in dem ich einen bereits bestehenden SparkContext und SQLContext habe und es falsch mache. Wenn ich keine einbeziehe
sc.stop (), ich erhalte einen Fehler, den ich versuche, einen zweiten Kontext zu instanziieren. Wenn ich es einbeziehe, bekomme ich einen Fehler, den ich versuche, Methoden in einem gestoppten Kontext aufzurufen.

Kann mir jemand den richtigen Weg sagen, um diese Variablen festzulegen?

Hier ist mein Code:

from pyspark import SparkConf, SparkContext
from pyspark.sql import HiveContext
from pyspark.sql import SQLContext
conf = (SparkConf()
       .set("spark.yarn.executor.memoryOverhead", "4096")
       .set("spark.kryoserializer.buffer.max.mb", "1024"))

sc.stop()
sc = SparkContext(conf=conf)
sqlContext = SQLContext.getOrCreate(sc)
War es hilfreich?

Lösung

Wenn Sie Spark in der Shell ausführen, ist das SparkConf -Objekt bereits für Sie erstellt. Wie in der angegeben Dokumentation Sobald ein SparkConf -Objekt an Spark übergeben wurde, kann es vom Benutzer nicht mehr geändert werden. Es ist also der richtige Weg, es zu stoppen und eine neue zu erstellen.

Dies sollte jedoch für Spark 2,0 und höher möglich sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top