Правильный способ установить переменные Spark в ноутбуке Юпитера
Вопрос
Мне нужно установить пару переменных в ноутбуке Jupyter, где у меня есть ранее существовавший SparkContext и SQLContext, и я делаю это неправильно. Если я не включаю
sc.stop (), я получаю ошибку, которую я пытаюсь создать второй контекст. Если я включаю это, я получаю ошибку, которую я пытаюсь позвонить методам в контексте остановки.
Может ли кто -нибудь сказать мне правильный способ установить эти переменные?
Вот мой код:
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)
Решение
Когда вы запускаете Spark в оболочке, объект SparkConf уже создан для вас. Как указано в документация Как только объект SparkConf передается в Spark, он больше не может быть изменен пользователем. Таким образом, остановка его и создание нового - это правильный способ сделать это.
Однако теперь это должно быть возможно для Spark 2.0 и выше.