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

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

22 голоса | спросил pg2455 6 PM00000080000005331 2015, 20:36:53

7 ответов


0

Если вы используете 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 на путь к выбранному вами интерпретатору.

ответил zero323 6 PM00000090000002831 2015, 21:48:28
0

Я использую ptpython (1) , который не только обеспечивает функциональность ipython , но и выбирает vi (1) или emacs (1) привязки клавиш; он также предоставляет динамическое чувство всплывающего кода /интеллекта, что чрезвычайно полезно при выполнении специальной работы 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 и выберите все варианты, которые вы хотите.

ЗАКЛЮЧИТЕЛЬНОЕ ЗАМЕЧАНИЕ . Если вы отправляете Python Spark Application (в отличие от взаимодействия с 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.

Надеюсь, этот ответ и настройка полезны.

ответил NYCeyes 6 AM00000050000004231 2017, 05:11:42
0

Вот что сработало для меня:

# 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
ответил pg2455 1 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 01 Sep 2015 18:21:37 +0300 2015, 18:21:37
0

По словам официального Github, IPYTHON = 1 недоступен в Spark 2.0+ Вместо этого используйте PYSPARK_PYTHON и PYSPARK_DRIVER_PYTHON.

https://github.com/apache/spark/blob/master /бен /pyspark

ответил Yang Bryan 12 J000000Wednesday17 2017, 13:14:28
0

если версия spark & ​​gt; = 2.0 и следующая конфигурация добавляются в .bashrc

export PYSPARK_PYTHON=/data/venv/your_env/bin/python
export PYSPARK_DRIVER_PYTHON=/data/venv/your_env/bin/ipython
ответил shengshan zhang 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 12 Sep 2017 07:01:01 +0300 2017, 07:01:01
0

Мне показалось полезным написать сценарии bash, которые загружают Spark определенным образом. Это даст вам простой способ запустить Spark в разных средах (например, ipython и блокнот jupyter).

Для этого откройте пустой скрипт (используя любой текстовый редактор, который вы предпочитаете), например, с именем ipython_spark.sh

В этом примере я предоставлю скрипт, который я использую для открытия спарка с помощью интерпретатора 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

Обратите внимание, что в моем файле bash_profile определен файл SPARK_HOME, но вы можете просто вставить весь путь к месту расположения 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, скорее всего.

Что мне нравится в этом методе, так это то, что вы можете написать несколько сценариев с различными конфигурациями и соответственно открыть искру. В зависимости от того, настраиваете ли вы кластер, нужно ли загружать разные пакеты или изменять количество ядер, которые есть в распоряжении spark, и т. Д. Вы можете либо обновить этот сценарий, либо создать новые. Как отмечено в @ zero323 выше, PYSPARK_DRIVER_PYTHON = является правильным синтаксисом для Spark & ​​gt; 1.2 Я использую Spark 2.2

ответил Jomonsugi 17 J000000Monday17 2017, 09:34:08
0

Ни один из упомянутых ответов не помог мне. Я всегда получаю ошибку:

.../pyspark/bin/load-spark-env.sh: No such file or directory

Я запустил ipython и вручную создал сеанс Spark:

from pyspark.sql import SparkSession
spark = SparkSession\
    .builder\
    .appName("example-spark")\
    .config("spark.sql.crossJoin.enabled","true")\
    .getOrCreate()

Чтобы не делать это каждый раз, я переместил код в ~/.ispark.py и создал следующий псевдоним (добавьте его в ~/.bashrc):

alias ipyspark="ipython -i ~/.ispark.py"

После этого вы можете запустить PySpark с iPython, набрав:

ipyspark
ответил stasdeep 4 Mayam18 2018, 11:15:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132