При попытке настроить и запустить pyspark я получаю следующую ошибку:
tom@tom-OptiPlex-3060:~$ pyspark
Could not find valid SPARK_HOME while searching ['/home', '/home/tom/.local/bin']
/home/tom/.local/bin/pyspark: line 24: /bin/load-spark-env.sh: No such file or directory
/home/tom/.local/bin/pyspark: line 77: /bin/spark-submit: No such file or directory
Но если я захожу внутрь каталога /usr/lib/spark/bin
- pyspark
работает
что мне здесь не хватает?
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export SBT_HOME=/usr/share/sbt-launcher-packaging/bin/sbt-launch.jar
export SPARK_HOME=/usr/lib/spark
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$SBT_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
export PYSPARK_PYTHON=python2.7
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
Я также пытался установить pyspark через pip.
Кажется, у вас есть 2 разные установки pyspark. pyspark использует установку в /home/tom/.local/bin/pyspark
вместо установки в /usr/lib/spark/bin
.
Вероятно, вы установили вручную в /usr/lib/spark
, а другой через pip. Как вы хотите использовать /usr/lib/spark
. Пожалуйста, удалите pip, добавьте /usr/lib/spark/bin
к вашему пути, и он должен работать
Я столкнулся с этой ошибкой, когда организовал свой код Python в пакеты/модули и когда выполнял импорт из одного пакета в другой.
Если у меня простой скрипт без пакетов SPARK_HOME
находится в os.environ
и равен /usr/hdp/current/spark2-client
(ваше значение может быть другим, просто print(os.environ['SPARK_HOME']
знать).
Простая установка этой переменной в проблемных функциях/пакетах, где она не работает, не помогла:
import os
os.environ['SPARK_HOME'] = '/usr/hdp/current/spark2-client'
В моем случае я решил это, передав этот параметр в spark-submit
:
--conf spark.yarn.appMasterEnv.SPARK_HOME=/usr/hdp/current/spark2-client
(дополнительная информация, которая может помочь: я использую yarn
как мастер)
Ясно, что он игнорирует ваше окружение. Вы установили
pyspark
через pip? В какой момент вы устанавливаете переменные?