Я новичок в apache spark, и, по-видимому, я установил apache-spark с homebrew в свой macbook:
Last login: Fri Jan 8 12:52:04 on console
user@MacBook-Pro-de-User-2:~$ pyspark
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/01/08 14:46:44 INFO SparkContext: Running Spark version 1.5.1
16/01/08 14:46:46 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/01/08 14:46:47 INFO SecurityManager: Changing view acls to: user
16/01/08 14:46:47 INFO SecurityManager: Changing modify acls to: user
16/01/08 14:46:47 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(user); users with modify permissions: Set(user)
16/01/08 14:46:50 INFO Slf4jLogger: Slf4jLogger started
16/01/08 14:46:50 INFO Remoting: Starting remoting
16/01/08 14:46:51 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriver@192.168.1.64:50199]
16/01/08 14:46:51 INFO Utils: Successfully started service 'sparkDriver' on port 50199.
16/01/08 14:46:51 INFO SparkEnv: Registering MapOutputTracker
16/01/08 14:46:51 INFO SparkEnv: Registering BlockManagerMaster
16/01/08 14:46:51 INFO DiskBlockManager: Created local directory at /private/var/folders/5x/k7n54drn1csc7w0j7vchjnmc0000gn/T/blockmgr-769e6f91-f0e7-49f9-b45d-1b6382637c95
16/01/08 14:46:51 INFO MemoryStore: MemoryStore started with capacity 530.0 MB
16/01/08 14:46:52 INFO HttpFileServer: HTTP File server directory is /private/var/folders/5x/k7n54drn1csc7w0j7vchjnmc0000gn/T/spark-8e4749ea-9ae7-4137-a0e1-52e410a8e4c5/httpd-1adcd424-c8e9-4e54-a45a-a735ade00393
16/01/08 14:46:52 INFO HttpServer: Starting HTTP Server
16/01/08 14:46:52 INFO Utils: Successfully started service 'HTTP file server' on port 50200.
16/01/08 14:46:52 INFO SparkEnv: Registering OutputCommitCoordinator
16/01/08 14:46:52 INFO Utils: Successfully started service 'SparkUI' on port 4040.
16/01/08 14:46:52 INFO SparkUI: Started SparkUI at http://192.168.1.64:4040
16/01/08 14:46:53 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
16/01/08 14:46:53 INFO Executor: Starting executor ID driver on host localhost
16/01/08 14:46:53 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 50201.
16/01/08 14:46:53 INFO NettyBlockTransferService: Server created on 50201
16/01/08 14:46:53 INFO BlockManagerMaster: Trying to register BlockManager
16/01/08 14:46:53 INFO BlockManagerMasterEndpoint: Registering block manager localhost:50201 with 530.0 MB RAM, BlockManagerId(driver, localhost, 50201)
16/01/08 14:46:53 INFO BlockManagerMaster: Registered BlockManager
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 1.5.1
/_/
Using Python version 2.7.10 (default, Jul 13 2015 12:05:58)
SparkContext available as sc, HiveContext available as sqlContext.
>>>
Я хочу начать играть, чтобы больше узнать о MLlib. Однако я использую Pycharm для написания скриптов на Python. Проблема в том, что когда я перехожу в Pycharm и пытаюсь вызвать pyspark, Pycharm не может найти модуль. Я попытался добавить путь к Pycharm следующим образом:
Затем из блога я попробовал это:
import os
import sys
# Path for spark source folder
os.environ['SPARK_HOME']="/Users/user/Apps/spark-1.5.2-bin-hadoop2.4"
# Append pyspark to Python Path
sys.path.append("/Users/user/Apps/spark-1.5.2-bin-hadoop2.4/python/pyspark")
try:
from pyspark import SparkContext
from pyspark import SparkConf
print ("Successfully imported Spark Modules")
except ImportError as e:
print ("Can not import Spark Modules", e)
sys.exit(1)
И все еще не могу начать использовать PySpark с Pycharm, есть идеи, как «связать» PyCharm с apache-pyspark ?.
Обновить:
Затем я ищу путь apache-spark и python, чтобы установить переменные среды Pycharm:
путь apache-spark:
user@MacBook-Pro-User-2:~$ brew info apache-spark
apache-spark: stable 1.6.0, HEAD
Engine for large-scale data processing
https://spark.apache.org/
/usr/local/Cellar/apache-spark/1.5.1 (649 files, 302.9M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/apache-spark.rb
путь Python:
user@MacBook-Pro-User-2:~$ brew info python
python: stable 2.7.11 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org
/usr/local/Cellar/python/2.7.10_2 (4,965 files, 66.9M) *
Затем, используя приведенную выше информацию, я попытался установить переменные среды следующим образом:
Есть идеи, как правильно связать Pycharm с pyspark?
Затем, когда я запускаю скрипт python с указанной выше конфигурацией, у меня возникает это исключение:
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/user/PycharmProjects/spark_examples/test_1.py
Traceback (most recent call last):
File "/Users/user/PycharmProjects/spark_examples/test_1.py", line 1, in <module>
from pyspark import SparkContext
ImportError: No module named pyspark
ОБНОВЛЕНИЕ: Затем я попробовал эти конфигурации, предложенные @ zero323
Конфигурация 1:
/usr/local/Cellar/apache-spark/1.5.1/
из:
user@MacBook-Pro-de-User-2:/usr/local/Cellar/apache-spark/1.5.1$ ls
CHANGES.txt NOTICE libexec/
INSTALL_RECEIPT.json README.md
LICENSE bin/
Конфигурация 2:
/usr/local/Cellar/apache-spark/1.5.1/libexec
из:
user@MacBook-Pro-de-User-2:/usr/local/Cellar/apache-spark/1.5.1/libexec$ ls
R/ bin/ data/ examples/ python/
RELEASE conf/ ec2/ lib/ sbin/
spark-defaults.conf
), либо через аргументы отправки - так же, как с записной книжкой Jupyter . Аргументы отправки могут быть определены в переменных среды PyCharm вместо кода, если вы предпочитаете этот вариант.Вот как я решил это на Mac OSX.
brew install apache-spark
Добавьте это в ~ / .bash_profile
export SPARK_VERSION=`ls /usr/local/Cellar/apache-spark/ | sort | tail -1` export SPARK_HOME="/usr/local/Cellar/apache-spark/$SPARK_VERSION/libexec" export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
Добавьте pyspark и py4j в корень содержимого (используйте правильную версию Spark):
/usr/local/Cellar/apache-spark/1.6.1/libexec/python/lib/py4j-0.9-src.zip /usr/local/Cellar/apache-spark/1.6.1/libexec/python/lib/pyspark.zip
источник
$SPARK_HOME/python
путь к классам интерпретатора и добавил переменные среды, и он работает, как ожидалось.Add pyspark and py4j to content root (use the correct Spark version)
помог мне в завершении кода. Как вы этого добились, изменив Project Interpreter?Вот настройка, которая мне подходит (Win7 64bit, PyCharm2017.3CE)
Настройте Intellisense:
Идите вперед и проверьте свои новые возможности intellisense.
источник
Настроить pyspark в pycharm (windows)
File menu - settings - project interpreter - (gearshape) - more - (treebelowfunnel) - (+) - [add python folder form spark installation and then py4j-*.zip] - click ok
Убедитесь, что SPARK_HOME установлен в среде Windows, pycharm возьмет оттуда. Подтвердить :
При необходимости установите SPARK_CONF_DIR в переменных среды.
источник
Я использовал следующую страницу в качестве ссылки и смог получить pyspark / Spark 1.6.1 (установленный через homebrew), импортированный в PyCharm 5.
http://renien.com/blog/accessing-pyspark-pycharm/
import os import sys # Path for spark source folder os.environ['SPARK_HOME']="/usr/local/Cellar/apache-spark/1.6.1" # Append pyspark to Python Path sys.path.append("/usr/local/Cellar/apache-spark/1.6.1/libexec/python") try: from pyspark import SparkContext from pyspark import SparkConf print ("Successfully imported Spark Modules") except ImportError as e: print ("Can not import Spark Modules", e) sys.exit(1)
При указанном выше pyspark загружается, но я получаю ошибку шлюза, когда пытаюсь создать SparkContext. Есть некоторая проблема со Spark из homebrew, поэтому я просто взял Spark с веб-сайта Spark (загрузите Pre-built for Hadoop 2.6 и новее) и указал на каталоги spark и py4j под ним. Вот код в pycharm, который работает!
import os import sys # Path for spark source folder os.environ['SPARK_HOME']="/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6" # Need to Explicitly point to python3 if you are using Python 3.x os.environ['PYSPARK_PYTHON']="/usr/local/Cellar/python3/3.5.1/bin/python3" #You might need to enter your local IP #os.environ['SPARK_LOCAL_IP']="192.168.2.138" #Path for pyspark and py4j sys.path.append("/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6/python") sys.path.append("/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6/python/lib/py4j-0.9-src.zip") try: from pyspark import SparkContext from pyspark import SparkConf print ("Successfully imported Spark Modules") except ImportError as e: print ("Can not import Spark Modules", e) sys.exit(1) sc = SparkContext('local') words = sc.parallelize(["scala","java","hadoop","spark","akka"]) print(words.count())
Мне очень помогли эти инструкции, которые помогли мне устранить неполадки в PyDev, а затем заставить его работать PyCharm - https://enahwe.wordpress.com/2015/11/25/how-to-configure-eclipse-for-developing -with-python-и-искра-на-hadoop /
Я уверен, что кто-то потратил несколько часов на то, чтобы биться головой о монитор, пытаясь заставить это работать, так что, надеюсь, это поможет спасти их рассудок!
источник
Я использую
conda
для управления своими пакетами Python. Итак, все, что я делал в терминале вне PyCharm, было:или, если вам нужна более ранняя версия, скажем 2.2.0, выполните:
conda install pyspark=2.2.0
Это также автоматически втягивает py4j. PyCharm больше не жаловался,
import pyspark...
и завершение кода также работало. Обратите внимание, что мой проект PyCharm уже был настроен для использования интерпретатора Python, который поставляется с Anaconda.источник
Посмотрите это видео.
Предположим, что ваш каталог искрового питона:
/home/user/spark/python
Предположим, ваш источник Py4j:
/home/user/spark/python/lib/py4j-0.9-src.zip
В основном вы добавляете в пути интерпретатора каталог spark python и каталог py4j внутри него. У меня недостаточно репутации, чтобы опубликовать скриншот, иначе я бы сделал это.
В видео пользователь создает виртуальную среду внутри самого pycharm, однако вы можете создать виртуальную среду вне pycharm или активировать уже существующую виртуальную среду, затем запустить pycharm с ней и добавить эти пути к путям интерпретатора виртуальной среды из внутри pycharm.
Я использовал другие методы для добавления искры через переменные среды bash, которые отлично работают вне pycharm, но по какой-то причине они не распознаются внутри pycharm, но этот метод работал отлично.
источник
SparkContext
объекта в начале вашего скрипта. Я отмечаю это, потому что использование интерактивной консоли pyspark через командную строку автоматически создает для вас контекст, тогда как в PyCharm вам нужно позаботиться об этом самостоятельно; синтаксис будет:sc = SparkContext()
Перед запуском IDE или Python необходимо настроить PYTHONPATH, SPARK_HOME.
Windows, отредактируйте переменные среды, добавив искру Python и py4j
Unix,
источник
Самый простой способ - установить PySpark через интерпретатор проекта.
источник
Из документации :
Вы вызываете свой скрипт напрямую с помощью интерпретатора CPython, что, как мне кажется, вызывает проблемы.
Попробуйте запустить свой скрипт с помощью:
"${SPARK_HOME}"/bin/spark-submit test_1.py
Если это сработает, вы сможете заставить его работать в PyCharm, установив интерпретатор проекта на spark-submit.
источник
bin/pyspark
Я следил за интерактивными учебниками и добавил переменные env в .bashrc:
# add pyspark to python export SPARK_HOME=/home/lolo/spark-1.6.1 export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
Затем я только что получил значение в SPARK_HOME и PYTHONPATH для pycharm:
(srz-reco)lolo@K:~$ echo $SPARK_HOME /home/lolo/spark-1.6.1 (srz-reco)lolo@K:~$ echo $PYTHONPATH /home/lolo/spark-1.6.1/python/lib/py4j-0.9-src.zip:/home/lolo/spark-1.6.1/python/:/home/lolo/spark-1.6.1/python/lib/py4j-0.9-src.zip:/home/lolo/spark-1.6.1/python/:/python/lib/py4j-0.8.2.1-src.zip:/python/:
Затем я скопировал его в Run / Debug Configurations -> Environment variable of the script.
источник
Я использовал pycharm, чтобы связать питон и искру. На моем компьютере были предустановлены Java и Spark.
Вот шаги, которым я следовал
Создать новый проект
В настройках для нового проекта -> я выбрал Python3.7 (venv) в качестве моего питона. Это файл python.exe, который находится в папке venv внутри моего нового проекта. Вы можете дать любой питон, доступный на вашем компьютере.
В настройках -> Структура проекта -> Добавить Content_Root
Я добавил две zip-папки как каталоги искры
Создайте файл python внутри нового проекта. Затем перейдите в Edit Configurations (в раскрывающемся списке справа вверху) и выберите Environment Variables.
Я использовал следующие переменные среды, и у меня все сработало.
вы можете дополнительно загрузить winutils.exe и поместить его в путь C: \ Users \ USER \ winutils \ bin
Задайте те же переменные среды внутри Edit Configurations -> Templates
Зайдите в Настройки -> Project Interpreter -> import pyspark
Запустите свою первую программу pyspark!
источник
Это руководство от pyspark_xray , инструмента, позволяющего отлаживать код pyspark в PyCharm, может ответить на ваш вопрос. Он охватывает как Windows, так и Mac.
Подготовка
java
команду, если вы получите сообщение об ошибке, загрузите и установите java (версия 1.8.0_221 по состоянию на апрель 2020 г.)winutils.exe
вc:\spark-x.x.x-bin-hadoopx.x\bin
папку, без этого исполняемого файла вы столкнетесь с ошибкой при записи вывода движкаpip install pyspark
илиconda install pyspark
Конфигурация запуска
Вы запускаете приложение Spark в кластере из командной строки, вводя
spark-submit
команду, которая отправляет задание Spark в кластер. Но из PyCharm или другой IDE на локальном ноутбуке или ПКspark-submit
нельзя использовать для запуска задания Spark. Вместо этого выполните следующие действия, чтобы настроить конфигурацию запуска demo_app pyspark_xray в PyCharm.HADOOP_HOME
значениеC:\spark-2.4.5-bin-hadoop2.7
SPARK_HOME
значениеC:\spark-2.4.5-bin-hadoop2.7
pyspark_xray
из GithubPYTHONUNBUFFERED=1;PYSPARK_PYTHON=python;PYTHONPATH=$SPARK_HOME/python;PYSPARK_SUBMIT_ARGS=pyspark-shell;
driver.py
к pyspark_xray> demo_appдрайвер-запуск-конфигурация
источник
Самый простой способ
Перезапустите pycharm, чтобы обновить index. Вышеупомянутые две папки присутствуют в папке spark / python вашей установки Spark. Таким образом, вы также получите предложения по завершению кода от pycharm.
источник
Я попытался добавить модуль pyspark через меню Project Interpreter, но этого оказалось недостаточно ... есть ряд переменных системной среды, которые необходимо установить,
SPARK_HOME
и путь к ним/hadoop/bin/winutils.exe
, чтобы читать локальные файлы данных. Вам также необходимо использовать правильные версии Python, JRE, JDK, доступные в переменных системной среды иPATH
. После долгого поиска в Google инструкции в этих видео сработали.источник