Введение в Spark с Python - PySpark для начинающих



Apache Spark захватил мир больших данных и аналитики, а Python - один из наиболее доступных языков программирования, используемых сегодня в отрасли. Итак, в этом блоге мы узнаем о Pyspark (искра с питоном), чтобы извлечь максимум из обоих миров.

является одним из наиболее широко используемых фреймворков, когда дело касается обработки больших данных и работы с ними. Python является одним из наиболее широко используемых языков программирования для анализа данных, машинного обучения и многого другого. Так почему бы не использовать их вместе? Это где Spark с Python также известен как PySpark входит ввкартина.

При средней зарплате разработчика Apache Spark 110 000 долларов в год, нет никаких сомнений в том, что Spark широко используется в отрасли. Потому чтоегобогатый набор библиотек, Python используетсявбольшинство специалистов по данным и аналитике сегодня. Интеграция Python со Spark стала большим подарком сообществу. Spark был разработан на языке Scala, который очень похож на Java. Он компилирует программный код в байт-код для JVM для обработки больших объемов данных. Для поддержки Spark с помощью python сообщество Apache Spark выпустило PySpark.С тех пор, был известен как один из самых востребованных навыков в отрасли благодаря широкому спектру преимуществ, которые он получил после объединения лучшего из обоих этих миров.В этом блоге Spark с Python я рассмотрю следующие темы.





Введение в Apache Spark

Apache Spark - это платформа кластерных вычислений с открытым исходным кодом для обработка в реальном времени разработан Apache Software Foundation. Spark предоставляет интерфейс для программирования целых кластеров с неявным параллелизм данных и Отказоустойчивость.



Ниже приведены некоторые особенности Apache Spark, которые дают ему преимущество перед другими фреймворками:

Возможности Spark - Spark с Python - Edureka

  • Скорость: Это в 100 раз быстрее, чем традиционные структуры крупномасштабной обработки данных.
  • Мощное кеширование: Уровень простого программирования обеспечивает мощные возможности кэширования и сохранения на диске.
  • Развертывание: Может быть развернут через Mesos, Hadoop через Yarn или собственный менеджер кластеров Spark.
  • В реальном времени: В реальном временивычисления и низкая задержка из-за вычислений в памяти.
  • Полиглот: Это один из самых важныхОсобенностиэтого фреймворка, поскольку он может быть запрограммирован на Scala, Java, Python и R.

Почему стоит выбрать Python?

Хотя Spark был разработан в Scala, что делает его почти в 10 раз быстрее Python, но Scala работает быстрее, только если количество используемых ядер меньше . Поскольку большая часть анализа и процессов в настоящее время требует большого количества ядер, преимущество Scala в производительности не так уж и много.



Для программистов Python - это сравнительно проще учить из-за его синтаксиса и стандартных библиотек. Более того, это динамически типизированный язык, что означает, что RDD могут содержать объекты нескольких типов.

Хотя в Scala есть SparkMLlib у него нет достаточно библиотек и инструментов для машинного обучения и НЛП целей. Более того, в Scala отсутствует визуализация данных.

PySpark Обучение | Apache Spark с Python | Эдурека

Подпишитесь на наш канал на YouTube, чтобы получать новости ..!

Настройка Spark с Python (PySpark)

Я надеюсь, вы знаете, как .Итак, как только вы распакованный искровой файл, установлен это и добавил его путь к .bashrc файл, вам нужно ввестиисточник .bashrc

как превратить double в int java
экспорт SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 экспорт PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin

Чтобы открыть оболочку pyspark, вам нужно ввести команду./bin/pyspark

Искра в промышленности

Apache Spark из-за его потрясающих функций, таких как обработка в памяти , полиглот и быстрая обработка используются многими компаниями по всему миру для различных целей в различных отраслях:

Yahoo использует Apache Spark для своих возможностей машинного обучения, чтобы персонализировать свои новости, веб-страницы, а также для целевой рекламы. Они используют Spark с python, чтобы узнать, какие новости - пользователям интересно читать и категоризировать новости, чтобы узнать, какие пользователи были бы заинтересованы в чтении каждой категории новостей.

TripAdvisor использует apache spark, чтобы давать советы миллионам путешественников, сравнивая сотни веб-сайтов, чтобы найти лучшие цены на отели для своих клиентов. Время, затрачиваемое на чтение и обработку отзывов об отелях в удобочитаемом формате, выполняется с помощью Apache Spark.

Одна из крупнейших в мире платформ электронной коммерции Алибаба выполняет одни из крупнейших в мире заданий Apache Spark для анализа сотен петабайт данных на своей платформе электронной коммерции.

PySpark SparkContext и поток данных

Говоря о Spark с Python, работа с RDD стала возможной благодаря библиотеке Py4j. PySpark Shell связывает Python API с ядром Spark и инициализирует контекст Spark. Контекст Spark это сердце любого искрового приложения.

  1. Контекст Spark настраивает внутренние службы и устанавливает соединение со средой выполнения Spark.
  2. Объект sparkcontext в программе драйвера координирует весь распределенный процесс и позволяет распределять ресурсы.
  3. Менеджеры кластеров предоставляют исполнителей, которые представляют собой процесс JVM с логикой.
  4. Объект SparkContext отправляет приложение исполнителям.
  5. SparkContext выполняет задачи в каждом исполнителе.

Пример использования PySpark KDD

Теперь давайте посмотрим на пример использования Кубок KDD’99 (Международный конкурс по открытию знаний и интеллектуальному анализу данных).Здесь мы возьмем часть набора данных, потому что исходный набор данных слишком велик.

import urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')

СОЗДАНИЕ RDD:
Теперь мы можем использовать этот файл для создать наш RDD .

data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (файл_данных)

ФИЛЬТРАЦИЯ:

Допустим, мы хотим посчитать, сколько нормальных. взаимодействия, которые есть в нашем наборе данных. Мы можем фильтр наш RDD raw_data следующим образом.

normal_raw_data = raw_data.filter (лямбда x: 'нормальный' в x)

COUNT:

Теперь мы можем считать сколько элементов у нас в новом СДР.

from time время импорта t0 = time () normal_count = normal_raw_data.count () tt = time () - t0 print 'Имеются {} 'нормальные' взаимодействия'. формат (normal_count) print 'Счетчик завершен за {} секунды'.format (круглый (tt, 3))

Вывод:

97278 «обычных» взаимодействий. Счетчик завершен за 5,951 секунды.

КАРТИРОВАНИЕ:

В этомкейсмы хотим прочитать наш файл данных в формате CSV. Мы можем сделать это, применив лямбда-функцию к каждому элементу RDD следующим образом. Здесь мы будем использовать map () и take () преобразование.

from pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Анализ завершен за {} секунд '.format (round (tt, 3)) pprint (head_rows [0])

Вывод:

Разбор завершен за 1,715 секунды [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'нормально. ']

РАЗДЕЛЕНИЕ:

Теперь мы хотим, чтобы каждый элемент в RDD был парой ключ-значение, где ключ - это тег (например, нормальный ), а значение - это полный список элементов, представляющий строку в файле в формате CSV. Мы могли бы поступить следующим образом. Здесь мы используем line.split () и map ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Вывод: (u'нормально. ', [u'0', u'cp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0.00 ', u'1.00', .... Неверно. '])

КОЛЛЕКЦИЯ АКЦИЯ:

Здесь мы собираемся использовать действие collect (). Он сохранит в памяти все элементы RDD. По этой причине его следует использовать осторожно при работе с большими RDD.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Данные собраны за {} секунды'. формат (round (tt, 3))

Вывод:

Данные собраны за 17,927 секунды

Конечно, это заняло больше времени, чем любое другое действие, которое мы использовали раньше. Каждый рабочий узел Spark, у которого есть фрагмент RDD, должен быть скоординирован, чтобы получить его часть, а затем сократить все вместе.

В качестве последнего примера, объединяющего все предыдущее, мы хотим собрать всенормальныйвзаимодействия в виде пар 'ключ-значение'.

# получать данные из файла data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # разбирать на пары ключ-значение key_csv_data = raw_data.map (parse_interaction) # фильтровать обычные взаимодействия клавиш normal_key_interactions = key_csv_data. lambda x: x [0] == 'normal.') # собрать все t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Данные собраны за {} секунд '.format (round (tt, 3)) print' Существует {} 'нормальных' взаимодействий '.format (normal_count)

Вывод:

Данные собираются за 12,485 секунды. Есть 97278 нормальных взаимодействий.

Вот и все, ребята!

Надеюсь, вам понравился этот блог Spark с Python. Если вы читаете это, поздравляем! Вы больше не новичок в PySpark. Попробуйте сейчас этот простой пример в своих системах.

Теперь, когда вы разобрались с основами PySpark, ознакомьтесь с от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Эдурека Обучение сертификации Python Spark с использованием PySpark разработан, чтобы предоставить вам знания и навыки, необходимые для того, чтобы стать успешным разработчиком Spark, использующим Python, и подготовить вас к сертификационному экзамену разработчика Cloudera Hadoop и Spark (CCA175).

Есть вопрос к нам? Пожалуйста, отметьте это в разделе комментариев, и мы свяжемся с вами.