Как установить payspark на windows 10
В этой главе мы познакомимся с тем, что такое Apache Spark и как был разработан PySpark.
Помимо обработки в реальном времени и пакетной обработки, Apache Spark поддерживает интерактивные запросы и итерационные алгоритмы. Apache Spark имеет свой собственный менеджер кластеров, где он может разместить свое приложение. Он использует Apache Hadoop для хранения и обработки. Он использует HDFS (распределенную файловую систему Hadoop) для хранения и может также запускать приложения Spark на YARN .
Apache Spark написан на языке программирования Scala . Для поддержки Python с помощью Spark сообщество Apache Spark выпустило инструмент PySpark. Используя PySpark, вы также можете работать с RDD на языке программирования Python. Именно благодаря библиотеке под названием Py4j они могут достичь этого.
PySpark предлагает PySpark Shell, который связывает Python API с ядром искры и инициализирует контекст Spark. Большинство исследователей данных и аналитиков сегодня используют Python из-за его богатого набора библиотек. Интеграция Python с Spark является благом для них.
В этой главе мы разберемся с настройкой среды PySpark.
Примечание. Это означает, что на вашем компьютере установлены Java и Scala.
Давайте теперь загрузим и настроим PySpark со следующими шагами.
Это создаст каталог spark-2.1.0-bin-hadoop2.7 . Перед запуском PySpark необходимо установить следующие среды, чтобы задать путь Spark и путь Py4j .
Или, чтобы установить вышеуказанные среды глобально, поместите их в файл .bashrc . Затем выполните следующую команду, чтобы среды работали.
Теперь, когда все среды установлены, давайте перейдем в каталог Spark и вызовем оболочку PySpark, выполнив следующую команду:
Это запустит вашу оболочку PySpark.
В следующем блоке кода содержатся сведения о классе PySpark и параметрах, которые может принимать SparkContext.
параметры
Ниже приведены параметры SparkContext.
Теперь, когда вы достаточно знаете о SparkContext, давайте запустим простой пример оболочки PySpark. В этом примере мы будем считать количество строк с символом «a» или «b» в файле README.md . Итак, допустим, если в файле 5 строк, а 3 строки имеют символ «a», то результатом будет → Строка с a: 3 . То же самое будет сделано для символа «б».
Давайте запустим тот же пример, используя программу на Python. Создайте файл Python с именем firstapp.py и введите следующий код в этот файл.
Затем мы выполним следующую команду в терминале, чтобы запустить этот файл Python. Мы получим тот же результат, что и выше.
СДР обозначает Resilient Distributed Dataset , это элементы, которые работают и работают на нескольких узлах для параллельной обработки в кластере. СДР являются неизменяемыми элементами, что означает, что после создания СДР вы не сможете их изменить. СДР также являются отказоустойчивыми, поэтому в случае любого сбоя они восстанавливаются автоматически. Вы можете применить несколько операций к этим СДР для достижения определенной задачи.
Чтобы применить операции к этим RDD, есть два способа:
Позвольте нам понять эти два способа в деталях.
Давайте посмотрим, как выполнить несколько основных операций с помощью PySpark. Следующий код в файле Python создает слова RDD, в которых хранится упомянутый набор слов.
Теперь мы выполним несколько операций над словами.
Количество элементов в СДР возвращается.
собирать ()
Все элементы в СДР возвращаются.
Еогеасп (е)
Возвращает только те элементы, которые удовлетворяют условию функции внутри foreach. В следующем примере мы вызываем функцию print в foreach, которая печатает все элементы в RDD.
фильтр (F)
Возвращается новый RDD, содержащий элементы, которые удовлетворяют функции внутри фильтра. В следующем примере мы отфильтровываем строки, содержащие искру.
----------------------------------------filter.py--------------------------------------- from pyspark import SparkContext sc = SparkContext("local", "Filter app") words = sc.parallelize ( ["scala", "java", "hadoop", "spark", "akka", "spark vs hadoop", "pyspark", "pyspark and spark"] ) words_filter = words.filter(lambda x: 'spark' in x) filtered = words_filter.collect() print "Fitered RDD -> %s" % (filtered) ----------------------------------------filter.py----------------------------------------карта (f, preservePartitioning = False)
Новый RDD возвращается путем применения функции к каждому элементу в RDD. В следующем примере мы формируем пару ключ-значение и сопоставляем каждую строку со значением 1.
уменьшить (е)
присоединиться (другое, numPartitions = Нет)
Он возвращает RDD с парой элементов с соответствующими ключами и всеми значениями для этого конкретного ключа. В следующем примере есть две пары элементов в двух разных RDD. После объединения этих двух RDD мы получаем RDD с элементами, имеющими совпадающие ключи и их значения.
Сохраните этот RDD с уровнем хранения по умолчанию (MEMORY_ONLY). Вы также можете проверить, кэшируется ли RDD или нет.
Это были некоторые из наиболее важных операций, выполняемых в PySpark RDD.
Для параллельной обработки Apache Spark использует общие переменные. Копия общей переменной отправляется на каждый узел кластера, когда драйвер отправляет задачу исполнителю в кластере, чтобы ее можно было использовать для выполнения задач.
Apache Spark поддерживает два типа общих переменных:
Позвольте нам понять их в деталях.
Broadcast
Широковещательные переменные используются для сохранения копии данных на всех узлах. Эта переменная кэшируется на всех машинах и не отправляется на машины с задачами. Следующий блок кода содержит подробные данные о классе Broadcast для PySpark.
В следующем примере показано, как использовать переменную Broadcast. Переменная Broadcast имеет атрибут value, который хранит данные и используется для возврата широковещательного значения.
аккумуляторный
Аккумуляторные переменные используются для агрегирования информации посредством ассоциативных и коммутативных операций. Например, вы можете использовать аккумулятор для операции с суммой или счетчиков (в MapReduce). В следующем блоке кода содержатся сведения о классе Accumulator для PySpark.
В следующем примере показано, как использовать переменную Accumulator. У переменной Accumulator есть атрибут с именем value, аналогичный тому, который имеет широковещательная переменная. Он хранит данные и используется для возврата значения аккумулятора, но может использоваться только в программе драйвера.
В этом примере переменная аккумулятора используется несколькими рабочими и возвращает накопленное значение.
Чтобы запустить приложение Spark на локальном / кластере, вам нужно установить несколько конфигураций и параметров, в этом SparkConf помогает. Он предоставляет конфигурации для запуска приложения Spark. Следующий блок кода содержит подробную информацию о классе SparkConf для PySpark.
Сначала мы создадим объект SparkConf с помощью SparkConf (), который будет загружать значения из spark. * Свойства системы Java также. Теперь вы можете устанавливать различные параметры, используя объект SparkConf, и их параметры будут иметь приоритет над системными свойствами.
В классе SparkConf есть методы установки, которые поддерживают цепочку. Например, вы можете написать conf.setAppName («Приложение PySpark»). SetMaster («локальный») . Как только мы передаем объект SparkConf в Apache Spark, он не может быть изменен любым пользователем.
Ниже приведены некоторые из наиболее часто используемых атрибутов SparkConf.
Давайте рассмотрим следующий пример использования SparkConf в программе PySpark. В этом примере мы устанавливаем имя приложения spark как PySpark App и задаем основной URL-адрес для приложения spark → spark: // master: 7077 .
Следующий блок кода содержит строки: когда они добавляются в файл Python, он устанавливает основные конфигурации для запуска приложения PySpark.
- получить (имя файла)
- getrootdirectory ()
Позвольте нам понять их в деталях.
получить (имя файла)
Он указывает путь к файлу, который добавляется через SparkContext.addFile ().
getrootdirectory ()
Он указывает путь к корневому каталогу, который содержит файл, который добавляется через SparkContext.addFile ().
StorageLevel решает, как следует хранить RDD. В Apache Spark StorageLevel решает, должен ли RDD храниться в памяти или на диске, или и то, и другое. Он также решает, следует ли сериализовать RDD и реплицировать ли разделы RDD.
Теперь, чтобы выбрать хранилище RDD, существуют разные уровни хранения, которые приведены ниже:
DISK_ONLY = StorageLevel (True, False, False, False, 1)
DISK_ONLY_2 = StorageLevel (True, False, False, False, 2)
MEMORY_AND_DISK = StorageLevel (True, True, False, False, 1)
MEMORY_AND_DISK_2 = StorageLevel (True, True, False, False, 2)
MEMORY_AND_DISK_SER = StorageLevel (True, True, False, False, 1)
MEMORY_AND_DISK_SER_2 = StorageLevel (True, True, False, False, 2)
MEMORY_ONLY = StorageLevel (False, True, False, False, 1)
MEMORY_ONLY_2 = StorageLevel (False, True, False, False, 2)
MEMORY_ONLY_SER = StorageLevel (False, True, False, False, 1)
MEMORY_ONLY_SER_2 = StorageLevel (False, True, False, False, 2)
OFF_HEAP = StorageLevel (True, True, True, False, 1)
DISK_ONLY = StorageLevel (True, False, False, False, 1)
DISK_ONLY_2 = StorageLevel (True, False, False, False, 2)
MEMORY_AND_DISK = StorageLevel (True, True, False, False, 1)
MEMORY_AND_DISK_2 = StorageLevel (True, True, False, False, 2)
MEMORY_AND_DISK_SER = StorageLevel (True, True, False, False, 1)
MEMORY_AND_DISK_SER_2 = StorageLevel (True, True, False, False, 2)
MEMORY_ONLY = StorageLevel (False, True, False, False, 1)
MEMORY_ONLY_2 = StorageLevel (False, True, False, False, 2)
MEMORY_ONLY_SER = StorageLevel (False, True, False, False, 1)
MEMORY_ONLY_SER_2 = StorageLevel (False, True, False, False, 2)
OFF_HEAP = StorageLevel (True, True, True, False, 1)
Давайте рассмотрим следующий пример StorageLevel, где мы используем уровень хранения MEMORY_AND_DISK_2, что означает , что разделы RDD будут иметь репликацию 2.
Существуют и другие алгоритмы, классы и функции, также входящие в состав пакета mllib. На данный момент давайте разберемся с демонстрацией на pyspark.mllib .
В следующем примере показана совместная фильтрация с использованием алгоритма ALS для построения модели рекомендаций и оценки ее по данным обучения.
Сериализация используется для настройки производительности в Apache Spark. Все данные, которые отправляются по сети или записываются на диск или сохраняются в памяти, должны быть сериализованы. Сериализация играет важную роль в дорогостоящих операциях.
PySpark поддерживает пользовательские сериализаторы для настройки производительности. PySpark поддерживает следующие два сериализатора:
MarshalSerializer
PickleSerializer
Сериализует объекты с помощью Python Serializer. Этот сериализатор поддерживает практически любой объект Python, но может быть не так быстр, как более специализированные сериализаторы.
Давайте посмотрим на пример сериализации PySpark. Здесь мы сериализуем данные, используя MarshalSerializer.
Последние несколько месяцев я работал над проектом Data Science, который обрабатывает огромный набор данных, и стало необходимым использовать распределенную среду, предоставляемую Apache PySpark.
Я много боролся при установке PySpark на Windows 10. Поэтому я решил написать этот блог, чтобы помочь любому легко установить и использовать Apache PySpark на компьютере с Windows 10.
1. Шаг 1
PySpark требует Java версии 7 или новее и Python версии 2.6 или новее. Давайте сначала проверим, установлены ли они, или установим их и убедимся, что PySpark может работать с этими двумя компонентами.
Установка Java
Проверьте, установлена ли на вашем компьютере Java версии 7 или новее. Для этого выполните следующую команду в командной строке.
«Java» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
тогда вы должны установить Java.
б) Получить Windows x64 (например, jre-8u92-windows-x64.exe), если вы не используете 32-разрядную версию Windows, в этом случае вам нужно получитьWindows x86 Offlineверсия.
в) Запустите установщик.
d) После завершения установки закройте текущую командную строку, если она уже была открыта, снова откройте ее и проверьте, можете ли вы успешно запуститьJava - версиякоманда.
2. Шаг 2
питон
Python используется многими другими программными инструментами. Поэтому вполне возможно, что требуемая версия (в нашем случае версия 2.6 или более поздняя) уже доступна на вашем компьютере. Чтобы проверить, доступен ли Python и найти его версию, откройте командную строку и введите командуPython - версия
Если Python установлен и настроен для работы из командной строки, при выполнении вышеуказанной команды информация о версии Python должна выводиться на консоль. Например, я получил следующий вывод на моем ноутбуке:
C: \ Users \ uug20> python --version
Python 3.7.3
«Python» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл ».
Это означает, что вам нужно установить Python. Для этого
а) Перейти к питонускачатьстр.
б) НажмитеПоследний выпуск Python 2ссылка.
c) Загрузите установочный файл MSI для Windows x86–64. Если вы используете 32-разрядную версию Windows, загрузите установочный файл MSI для Windows x86.
г) Когда вы запускаете установщик, наНастроить Pythonраздел, убедитесь, что опцияДобавить python.exe в путьвыбран. Если этот параметр не выбран, некоторые утилиты PySpark, такие как pyspark и spark-submit, могут не работать.
e) После завершения установки закройте командную строку, если она уже была открыта, снова откройте ее и проверьте, можете ли вы успешно запуститьPython - версиякоманда.
3. Шаг 3
Установка Apache Spark
а) Перейти к искрескачатьстр.
б) Выберите последнюю стабильную версию Spark.
с)Выберите тип упаковки: sвыберите версию, предварительно созданную для последней версии Hadoop, такую какПредварительно построен для Hadoop 2.6,
г)Выберите тип загрузки:ВыбратьПрямое скачивание,
f) Для установки Apache Spark вам не нужно запускать какой-либо установщик. Извлеките файлы из загруженного tar-файла в любую папку по вашему выбору, используя7Zipинструмент / другие инструменты для разархивирования.
Убедитесь, что путь к папке и имя папки, содержащей файлы Spark, не содержат пробелов.
Я создал папку с именем spark на моем диске D и распаковал заархивированный tar-файл в папку с именем spark-2.4.3-bin-hadoop2.7. Таким образом, все файлы Spark находятся в папке с именем D: \ spark \ spark-2.4.3-bin-hadoop2.7. Давайте назовем эту папку SPARK_HOME в этом посте.
Чтобы проверить успешность установки, откройте командную строку, перейдите в каталог SPARK_HOME и введите bin \ pyspark. Это должно запустить оболочку PySpark, которую можно использовать для интерактивной работы со Spark.
4. Шаг 4
Настройка установки Spark
«ОШИБКА Shell: не удалось найти двоичный файл winutils в двоичном пути hadoop java.io.IOException: не удалось найти исполняемый файл null \ bin \ winutils.exe в двоичных файлах Hadoop».
«Bin \ spark-submit examples \ src \ main \ python \ wordcount.py README.md»
Установка winutils
Давайте загрузим winutils.exe и сконфигурируем нашу установку Spark, чтобы найти winutils.exe.
a) Создайте папку hadoop \ bin внутри папки SPARK_HOME.
c) Создайте системную переменную среды в Windows с именем SPARK_HOME, которая указывает путь к папке SPARK_HOME.
d) Создайте в Windows другую переменную системной среды с именем HADOOP_HOME, которая указывает на папку hadoop внутри папки SPARK_HOME.
Поскольку папка hadoop находится внутри папки SPARK_HOME, лучше создать переменную среды HADOOP_HOME, используя значение% SPARK_HOME% \ hadoop. Таким образом, вам не нужно менять HADOOP_HOME, если SPARK_HOME обновлен.
5. Шаг 5
Настройка уровня журнала для Spark
a) Скопируйте файл log4j.properties.template в папку SPARK_HOME \ conf как файл log4j.properties в папке SPARK_HOME \ conf.
b) Установите для свойства log4j.rootCategory значение WARN, console.
c) Сохраните файл log4j.properties.
Резюме
Чтобы работать с PySpark, запустите командную строку и перейдите в каталог SPARK_HOME.
а) Чтобы запустить оболочку PySpark, запустите утилиту bin \ pyspark. Когда вы окажетесь в оболочке PySpark, используйте имена sc и sqlContext и введите exit (), чтобы вернуться в командную строку.
б) Чтобы запустить автономный скрипт Python, запустите утилиту bin \ spark-submit и укажите путь к вашему скрипту Python, а также любые аргументы, которые нужны вашему скрипту Python, в командной строке. Например, чтобы запустить скрипт wordcount.py из каталога examples в папке SPARK_HOME, вы можете выполнить следующую команду:
«bin \ spark-submit examples \ src \ main \ python \ wordcount.py README.md«
6. Шаг 6
Важно: я столкнулся с проблемой при установке
Решение:
В моем случае я не знал, что мне нужно добавить ТРИ пути, связанные с миникондами, в переменную окружения PATH.
C: \ Users \ uug20 \ Anaconda3
C: \ Users \ uug20 \ Anaconda3 \ Scripts
C: \ Users \ uug20 \ Anaconda3 \ Library \ bin
PySpark — это API Apache Spark, который представляет собой систему с открытым исходным кодом, применяемую для распределенной обработки больших данных. Изначально она была разработана на языке программирования Scala в Калифорнийском университете Беркли.
Spark предоставляет API для Scala, Java, Python и R. Система поддерживает повторное использование кода между рабочими задачами, пакетную обработку данных, интерактивные запросы, аналитику в реальном времени, машинное обучение и вычисления на графах. Она использует кэширование в памяти и оптимизированное выполнение запросов к данным любого размера.
У нее нет одной собственной файловой системы, такой как Hadoop Distributed File System (HDFS), вместо этого Spark поддерживает множество популярных файловых систем, таких как HDFS, HBase, Cassandra, Amazon S3, Amazon Redshift, Couchbase и т. д.
Преимущества использования Apache Spark:
- Он запускает программы в памяти до 100 раз быстрее, чем Hadoop MapReduce, и в 10 раз быстрее на диске, потому что Spark выполняет обработку в основной памяти рабочих узлов и предотвращает ненужные операции ввода-вывода.
- Spark крайне удобен для пользователя, поскольку имеет API-интерфейсы, написанные на популярных языках, что упрощает задачу для разработчиков: такой подход скрывает сложность распределенной обработки за простыми высокоуровневыми операторами, что значительно снижает объем необходимого кода.
- Систему можно развернуть, используя Mesos, Hadoop через Yarn или собственный диспетчер кластеров Spark.
- Spark производит вычисления в реальном времени и обеспечивает низкую задержку благодаря их резидентному выполнению (в памяти).
Настройка среды в Google Colab
Чтобы запустить pyspark на локальной машине, нам понадобится Java и еще некоторое программное обеспечение. Поэтому вместо сложной процедуры установки мы используем Google Colaboratory, который идеально удовлетворяет наши требования к оборудованию, и также поставляется с широким набором библиотек для анализа данных и машинного обучения. Таким образом, нам остается только установить пакеты pyspark и Py4J. Py4J позволяет программам Python, работающим в интерпретаторе Python, динамически обращаться к объектам Java из виртуальной машины Java.
Команда для установки вышеуказанных пакетов:
Spark Session
SparkSession стал точкой входа в PySpark, начиная с версии 2.0: ранее для этого использовался SparkContext. SparkSession — это способ инициализации базовой функциональности PySpark для программного создания PySpark RDD, DataFrame и Dataset. Его можно использовать вместо SQLContext, HiveContext и других контекстов, определенных до 2.0.
Вы также должны знать, что SparkSession внутренне создает SparkConfig и SparkContext с конфигурацией, предоставленной с SparkSession. SparkSession можно создать с помощью SparkSession.builder , который представляет собой реализацию шаблона проектирования Builder (Строитель).
Создание SparkSession
Чтобы создать SparkSession, вам необходимо использовать метод builder() .
Из этой статьи вы узнаете, как установить Jupyter Notebook с пользовательскими ядрами PySpark (для Python) и Apache Spark (для Scala) с помощью магических команд Spark, а затем подключить эту записную книжку к кластеру HDInsight.
Для установки Jupyter и подключения к Apache Spark в HDInsight необходимо выполнить четыре основных шага.
- Настроить кластер Spark.
- Установить Jupyter Notebook.
- Установите ядра PySpark и Spark с помощью волшебной команды Spark.
- Настройте волшебную команду Spark для доступа к кластеру Spark в HDInsight.
Дополнительные сведения о пользовательских ядрах и магических командах Spark см. в разделе Ядра, доступные для Jupyter Notebook с кластерами Apache Spark Linux в HDInsight.
Предварительные требования
Кластер Apache Spark в HDInsight. Инструкции см. в статье Начало работы. Создание кластера Apache Spark в HDInsight на платформе Linux и выполнение интерактивных запросов с помощью SQL Spark. Локальная записная книжка подключается к кластеру HDInsight.
Опыт работы с записными книжками Jupyter с Spark в HDInsight.
Установка Jupyter Notebook на компьютер
Перед установкой Jupyter Notebook необходимо установить Python. Дистрибутив Anaconda установит как Python, так и Jupyter Notebook.
Скачайте установщик Anaconda для своей платформы и запустите программу установки. В мастере установки укажите параметр для добавления Anaconda в переменную PATH. См. также Установка Jupyter с помощью Anaconda.
Установка магических команд Spark
Введите команду pip install sparkmagic==0.13.1 , чтобы установить магические команды Spark для кластеров HDInsight версии 3.6 и 4.0. См. также документацию по sparkmagic.
Убедитесь, что мини-приложение ipywidgets установлено правильно. Для этого выполните следующую команду:
Установка ядер PySpark и Spark
Определите место установки sparkmagic с помощью следующей команды:
Затем измените рабочий каталог на расположение, определенное с помощью команды выше.
В новом рабочем каталоге введите одну или несколько из приведенных ниже команд, чтобы установить требуемые ядра:
Необязательный элемент. Введите следующую команду, чтобы включить расширение сервера:
Настройка волшебной команды Spark для подключения к кластеру HDInsight Spark
В этом разделе вы настроите подключение магической команды Spark, установленной ранее, к кластеру Apache Spark.
Запустите оболочку Python с помощью следующей команды:
Сведения о конфигурации Jupyter обычно хранятся в домашнем каталоге пользователей. Введите следующую команду, чтобы определить домашний каталог, и создайте папку с именем .sparkmagic. Будет выведен полный путь.
В папке .sparkmagic создайте файл config.json и добавьте в него следующий фрагмент кода JSON.
Внесите в файл следующие изменения:
Полный пример файла можно просмотреть в образце config.json.
Сигналы пульса отправляются, чтобы предотвратить утечку сеансов. При переходе в спящий режим или завершении работы компьютера пульс не отправляется, что приводит к очистке сеанса. Если вы хотите отключить такое поведение для кластеров версии 3.4, то можете настроить для параметра Livy livy.server.interactive.heartbeat.timeout значение 0 с помощью пользовательского интерфейса Ambari. Если для кластеров версии 3.5 не настроить соответствующую конфигурацию, приведенную выше, то сеанс не будет удален.
Запустите Jupyter. Выполните следующую команду из командной строки.
Убедитесь, что вы можете использовать магическую команду Spark, доступную вместе с ядрами. Выполните следующие шаги.
а. Создайте новую записную книжку. В правом верхнем углу щелкните Создать. Должны отобразиться ядро по умолчанию Python 2 или Python 3 и установленные ядра. Фактические значения могут отличаться в зависимости от выбранных вариантов установки. Выберите PySpark.
b. Запустите следующий фрагмент кода.
Если вы успешно получили выходные данные, подключение к кластеру HDInsight работает.
Если вы хотите обновить конфигурацию записной книжки для подключения к другому кластеру, измените файл config.json, указав новый набор значений, как показано на шаге 3.
Зачем устанавливать Jupyter на моем компьютере?
Причины, по которым требуется установить на компьютер Jupyter и подключить к кластеру Apache Spark в HDInsight.
Если Jupyter установлен на локальном компьютере, несколько пользователей могут одновременно запустить одну и ту же записную книжку в одном кластере Spark. В такой ситуации создаются несколько сеансов Livy. Если вы столкнетесь с проблемами и начнете их отладку, вам будет сложно определить, какой сеанс Livy какому пользователю принадлежит.
Я новичок в apache spark и, по-видимому, я установил apache-spark с homebrew в своем macbook:
Я хотел бы начать играть, чтобы узнать больше о MLlib. Однако я использую Pycharm для написания скриптов на python. Проблема в том, что когда я иду в Pycharm и пытаюсь вызвать pyspark, Pycharm не может найти модуль. Я попытался добавить путь к Pycharm следующим образом:
затем с блог я попытался это:
и все еще не может начать использовать PySpark с Pycharm, любая идея о том, как" связать " PyCharm с apache-pyspark?.
обновление:
затем я ищу путь apache-spark и python, чтобы установить переменные среды Pycharm:
затем с приведенной выше информацией я попытался установить переменные среды как следует:
любая идея о том, как правильно связать Pycharm с pyspark?
затем, когда я запускаю скрипт python с вышеуказанной конфигурацией, у меня есть это исключение:
обновление: Затем я попробовал эту конфигурацию, предложенную @zero323
С пакетом PySpark (Spark 2.2.0 и более поздних версий)
С Искра-1267 слияния вы должны быть в состоянии упростить процесс pip установка Spark в среде, которую вы используете для разработки PyCharm.
нажмите на кнопку установить пакет.
вручную с Пользователем при условии установки Spark
создать конфигурацию запуска:
- на выполнить ->изменение конфигураций
- добавить новую конфигурацию Python
- Set скрипт путь, поэтому он указывает на скрипт вы хотите выполнить
редактировать переменные среды поле, поэтому оно содержит по крайней мере:
-
SPARK_HOME - он должен указывать на каталог с установкой Spark. Он должен содержать такие каталоги, как bin (С spark-submit , spark-shell , etc.) и conf (С spark-defaults.conf , spark-env.sh , etc.)
PYTHONPATH - он должен содержать $SPARK_HOME/python и дополнительно $SPARK_HOME/python/lib/py4j-some-version.src.zip если не доступны в противном случае. some-version должен соответствовать Py4J версия, используемая в данной установке СПАРК (0.8.2.1 - 1.5, 0.9 - 1.6, 0.10.3 - 2.0, 0.10.4 - 2.1, 0.10.4 - 2.2, 0.10.6 - 2.3)
добавить библиотеку PySpark в путь интерпретатора (требуется для завершения кода):
- на ->настройки -> Переводчик
- откройте Настройки интерпретатора, который вы хотите использовать с Spark
- редактировать пути интерпретатора, чтобы он содержал путь к $SPARK_HOME/python (Py4J при необходимости)
- сохранить параметры
используйте вновь созданную конфигурацию для запуска скрипта.
вот как я решил это на mac osx.
добавить pyspark и py4j в корень содержимого (используйте правильную версию Spark):
вот настройка, которая работает для меня
Нажмите Файл - > Настройки - > Проект: - > Интерпретатор Проекта
щелкните значок шестеренки справа от раскрывающегося списка интерпретатор проекта
Нажмите На Кнопку Дополнительно. из контекстного меню
выберите интерпретатор, затем нажмите значок "показать пути" (внизу справа)
нажмите значок + два добавьте следующие пути:
\python\lib\py4j-0.9-src.zip
\bin\python\lib\pyspark.zip
нажмите OK, OK, OK
продолжайте и проверьте свои новые возможности intellisense.
настройка pyspark в pycharm (windows)
убедитесь, что SPARK_HOME установлен в среде windows, pycharm возьмет оттуда. Для подтверждения :
дополнительно задайте SPARK_CONF_DIR в переменных среды.
я использовал следующую страницу в качестве ссылки и смог получить pyspark/Spark 1.6.1 (установленный через homebrew), импортированный в PyCharm 5.
с вышеизложенным, pyspark загружается, но я получаю ошибку шлюза, когда пытаюсь создать SparkContext. Есть некоторые проблемы с Spark от homebrew, поэтому я просто схватил Spark с веб-сайта Spark (загрузите предварительно построенный для Hadoop 2.6 и более поздних версий) и point к каталогам spark и py4j под этим. Вот код в pycharm, который работает!
Я уверен, что кто-то провел несколько часов, ударяя головой о свой монитор, пытаясь заставить это работать, так что, надеюсь это помогает сохранить их здравомыслие!
предположим, что ваш каталог python spark: /home/user/spark/python
предположим, что ваш источник Py4j: /home/user/spark/python/lib/py4j-0.9-src.zip
в основном вы добавляете каталог python spark и каталог py4j внутри этого к путям интерпретатора. У меня недостаточно репутации, чтобы опубликовать скриншот, или я бы.
в видео, пользователь создает виртуальную среду внутри pycharm, однако, вы можете сделать виртуальную среду вне pycharm или активировать ранее существующую виртуальную среду, а затем запустить pycharm с ним и добавить эти пути к путям интерпретатора виртуальной среды из pycharm.
я использовал другие методы для добавления искры через переменные среды bash, которая отлично работает за пределами pycharm, но по какой-то причине они не были распознаны в pycharm, но этот метод работал отлично.
вам нужно настроить PYTHONPATH, SPARK_HOME перед запуском IDE или Python.
Читайте также: