modo corretto per impostare le variabili Spark in notebook jupyter
Domanda
Ho bisogno di impostare un paio di variabili nel mio taccuino Jupyter dove ho una sparkContext preesistente e SqlContext e sto facendo male. Se non dispone di una
sc.stop ()
, Ottengo un errore che sto cercando di creare un'istanza di un secondo contesto. Se lo faccio includo, ottengo un errore che sto provando a chiamare i metodi su un contesto fermato.
Qualcuno può dirmi il modo corretto di impostare queste variabili?
Ecco il mio codice:
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)
Soluzione
Quando si esegue Spark nella shell l'oggetto SparkConf è già stato creato per voi. Come indicato nella documentazione del una volta SparkConf oggetto viene passato al Spark, non può più essere modificato dall'utente. Quindi l'arresto e la creazione di uno nuovo è in realtà il modo giusto per farlo.
Tuttavia, questo dovrebbe essere possibile per Spark 2.0 e superiori.