Richtige Möglichkeit, Funkenvariablen im Jupyter -Notebook festzulegen
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)
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.