Вопросы по настройке оболочки pySpark
Я пытаюсь изменить параметры конфигурации оболочки pyspark, теперь она работает локально, но я хочу изменить ее на пряжу. Код в shell.py (файл запускает оболочку)
conf = SparkConf() #It was this line
conf = SparkConf().setMaster("yarn").setAppName("testing") #I changed it to this line
Но это не изменило мастера, что здесь не так? Как я могу изменить мастер на пряжу правильно? Заранее спасибо!
1 ответ
Здесь есть две проблемы:
1) Вы не используете new
Ключевое слово в питоне. Так что строка должна выглядеть так:
conf = SparkConf().setMaster("yarn").setAppName("testing")
2) Если вы пытаетесь сделать это в оболочке, это не сработает. Оболочка уже создала SparkConf и SparkContext при запуске. Вы не можете изменить SparkContext после того, как он был создан. Тем не менее, это будет работать в начале файла драйвера, который вы запускаете, где вы несете ответственность за создание SparkContext.
Чтобы сменить хозяина, вы можете сделать это в $SPARK_HOME/conf/spark-defaults.conf
или вы можете использовать --master
когда вы запускаете pyspark
или же spark-submit
Обновлено:
Также вы можете использовать этот метод, который будет работать с IPython. Запустите это, прежде чем запускать ipython, или поместите его в ваш.bashrc и запишите его.
export PYSPARK_SUBMIT_ARGS="--master yarn"