Форсировать Python2 с помощью spark-submit

Я создаю приложение Spark с помощью AWS EMR, но spark-submit работает с Python 3 вместо Python 2. Но когда вместо этого я запускаю pyspark, это Python 2.

Как я могу заставить spark-submit использовать Python 2?

я пытался сделать

export PYSPARK_PYTHON=/usr/bin/python2 

но это не сработало.

Спасибо


person Pierre    schedule 07.07.2017    source источник


Ответы (2)


Вы пробовали вставить

PYSPARK_PYTHON=/usr/bin/python2 

заявление в файл spark-env.sh?

person Gus B    schedule 07.07.2017
comment
Вы имеете в виду, что я должен сделать: export PYSPARK_PYTHON=/usr/bin/python2 перед запуском скрипта? Я попытался подключиться к кластеру по SSH и запустить вручную spark-submit code.py, и, похоже, он работает с Python 2. Но когда я делаю это с --steps spark-submit... он запускает Python 3. - person Pierre; 10.07.2017
comment
Здравствуйте, я имею в виду, добавили ли вы переменную среды PYSPARK_PYTHON в файл $SPARK_HOME/conf/spark-env.sh на узлах вашего кластера. $ SPARK_HOME — это каталог, в который вы установили Spark. - person Gus B; 10.07.2017
comment
Я только что попробовал это, и это все еще не работает. Таким образом, в основном, когда я вызываю spark-submit из SSH, он работает с Python2, но когда я добавляю шаг «spark-submit» с помощью консоли AWS (или cli), он запускает Python3. - person Pierre; 10.07.2017
comment
на самом деле, когда я запускаю print(sys.version_info) через spark-submit (добавляя шаг с консолью AWS), он говорит, что это Python 2.6.9, но есть SyntaxError: неверный синтаксис, если я пытаюсь запустить «print hello world» - person Pierre; 10.07.2017

На самом деле у меня было это в моем коде

from __future__ import print_function

и когда я запускал печать «hello world», она падала, потому что это не функция печати по умолчанию. Но я думал, что он падает, потому что он использует Python 3 вместо Python 2.

person Pierre    schedule 10.07.2017