Подтвердить что ты не робот

Как загрузить оболочку IPython с помощью PySpark

Я хочу загрузить оболочку IPython (не IPython), в которой я могу использовать PySpark через командную строку. Это возможно? Я установил Spark-1.4.1.

4b9b3361

Ответ 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

Ответ 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