Вопросы по настройке оболочки 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"

Другие вопросы по тегам