Я хочу загрузить оболочку IPython (не IPython), в которой я могу использовать PySpark через командную строку. Это возможно? Я установил Spark-1.4.1.
Как загрузить оболочку IPython с помощью PySpark
Ответ 1
Если вы используете Spark & lt; 1.2 вы можете просто выполнить bin/pyspark
с переменной окружения IPYTHON=1
.
IPYTHON=1 /path/to/bin/pyspark
или
export IPYTHON=1
/path/to/bin/pyspark
В то время как выше все еще будет работать на Spark 1.2 и выше, рекомендуется установить среду Python для этих версий PYSPARK_DRIVER_PYTHON
PYSPARK_DRIVER_PYTHON=ipython /path/to/bin/pyspark
или
export PYSPARK_DRIVER_PYTHON=ipython
/path/to/bin/pyspark
Вы можете заменить ipython
на путь к интерпретатору по вашему выбору.
Ответ 2
Вот что сработало для меня:
# if you run your ipython with 2.7 version with ipython2
# whatever you use for launching ipython shell should come after '=' sign
export PYSPARK_DRIVER_PYTHON=ipython2
а затем из каталога SPARK_HOME:
./bin/pyspark
Ответ 3
Согласно официальному Github, IPYTHON = 1 недоступен в Spark 2.0+ Вместо этого используйте PYSPARK_PYTHON и PYSPARK_DRIVER_PYTHON.
Ответ 4
Я использую ptpython (1), который не только предоставляет функциональность ipython, но и ваш выбор: vi (1) или emacs (1) привязки ключей; он также поставляет динамический код для всплывающих подсказок/интеллекта, что чрезвычайно полезно при работе Ad-Hoc SPARK в CLI.
Вот что выглядит мой сеанс vi -enabled ptpython, принимая во внимание режим VI (INSERT) в нижней части screehshot, а также приглашение стиля ipython, чтобы указать, что эти возможности ptpython были выбраны (подробнее о том, как их выбрать в данный момент):
Чтобы получить все это, выполните следующие простые шаги:
[email protected]$ pip3 install ptpython # Everything here assumes Python3
[email protected]$ vi ${SPARK_HOME}/conf/spark-env.sh
# Comment-out/disable the following two lines. This is necessary because
# they take precedence over any UNIX environment settings for them:
# PYSPARK_PYTHON=/path/to/python
# PYSPARK_DRIVER_PYTHON=/path/to/python
[email protected]$ vi ${HOME}/.profile # Or whatever your login RC-file is.
# Add these two lines:
export PYSPARK_PYTHON=python3 # Fully-Qualify this if necessary. (python3)
export PYSPARK_DRIVER_PYTHON=ptpython3 # Fully-Qualify this if necessary. (ptpython3)
[email protected]$ . ${HOME}/.profile # Source the RC file.
[email protected]$ pyspark
# You are now running pyspark(1) within ptpython; a code pop-up/interactive
# shell; with your choice of vi(1) or emacs(1) key-bindings; and
# your choice of ipython functionality or not.
Чтобы выбрать настройки pypython (и их куча), просто нажмите F2 из сеанса ptpython и выберите любые параметры, которые вы хотите.
ЗАМЕЧАНИЕ ЗАКРЫТИЯ. Если вы отправляете приложение Spark для Python (в отличие от взаимодействия с pyspark (1) через CLI, как показано выше) просто установите PYSPARK_PYTHON и PYSPARK_DRIVER_PYTHON программно в Python, например:
os.environ['PYSPARK_PYTHON'] = 'python3'
os.environ['PYSPARK_DRIVER_PYTHON'] = 'python3' # Not 'ptpython3' in this case.
Я надеюсь, что этот ответ и настройка будут полезными.
Ответ 5
Что я нашел полезным, это написать сценарии bash, которые загружают Spark определенным образом. Это даст вам простой способ запустить Spark в разных средах (например, ipython и jupyter notebook).
Для этого откройте пустой script (используя любой текстовый редактор, который вы предпочитаете), например, один из них называется ipython_spark.sh
В этом примере я предоставил script, который я использовал, чтобы открыть искру с помощью интерпретатора ipython:
#!/bin/bash
export PYSPARK_DRIVER_PYTHON=ipython
${SPARK_HOME}/bin/pyspark \
--master local[4] \
--executor-memory 1G \
--driver-memory 1G \
--conf spark.sql.warehouse.dir="file:///tmp/spark-warehouse" \
--packages com.databricks:spark-csv_2.11:1.5.0 \
--packages com.amazonaws:aws-java-sdk-pom:1.10.34 \
--packages org.apache.hadoop:hadoop-aws:2.7.3
Обратите внимание, что у меня есть SPARK_HOME, определенный в моем файле bash_profile, но вы можете просто вставить весь путь туда, где pyspark находится на вашем компьютере.
Мне нравится ставить все сценарии наподобие этого в одном месте, поэтому я помещаю этот файл в папку под названием "scripts"
Теперь для этого примера вам нужно перейти в ваш файл bash_profile и ввести следующие строки:
export PATH=$PATH:/Users/<username>/scripts
alias ispark="bash /Users/<username>/scripts/ipython_spark.sh"
Эти пути будут специфичны для того, где вы помещаете ipython_spark.sh и вам может потребоваться обновить разрешения:
$ chmod 711 ipython_spark.sh
и отправьте свой файл bash_profile:
$ source ~/.bash_profile
Я нахожусь на mac, но все это должно работать и для linux, хотя скорее всего вы будете обновлять .bashrc вместо bash_profile.
Что мне нравится в этом методе, так это то, что вы можете написать несколько сценариев, с разными конфигурациями и соответственно искробезопасными. В зависимости от того, настроен ли кластер, вам нужно загрузить различные пакеты или изменить количество искровых ядер в его распоряжении и т.д., Вы можете либо обновить этот script, либо создать новые. Как отмечено @zero323 выше PYSPARK_DRIVER_PYTHON = - это правильный синтаксис для Spark > 1.2 Я использую Spark 2.2
Ответ 6
если версия искры >= 2.0 и следующая конфигурация может быть добавлена в .bashrc
export PYSPARK_PYTHON=/data/venv/your_env/bin/python
export PYSPARK_DRIVER_PYTHON=/data/venv/your_env/bin/ipython