Я создал простую программу для проверки моей первой настройки среды apache -spark с использованием pyspark и получил ошибку, которая кажется очень распространенной в StackOverflow: Exception: Python in worker has different version 2.7 than that in driver 3.7.
Я нашел несколько исправлений и единственное, что сработало для меня, - это добавить следующую строку в сценарий: os.environ["PYSPARK_PYTHON"]="/Users/username/Library/miniconda3/envs/env_name/bin/python"
У меня есть переменные, установленные в ОБЕИХ ~/.zshrc
И в $SPARK_HOME/conf/spark-env.sh
:
export PYSPARK_PYTHON=/Users/username/Library/miniconda3/envs/env_name/bin/python
export PYSPARK_DRIVER_PYTHON=/Users/username/Library/miniconda3/envs/env_name/bin/python
Все переменные среды указывают на тот же путь python 3.7, который использует простая программа. Если я запускаю pyspark
из командной строки, он также указывает 3.7. Опять же, он работает с os.environ
, но мой вопрос: зачем это нужно, если я настроил свои драйверы и рабочие на 3.7? Откуда взялась версия 2.7 Worker'а (до того, как я указывал os.environ
в скрипте)?
(я создаю код в Sublime Text на macOS Catalina. Переменные среды указывают на и мои код работает в среде conda, работающей на python 3.7)