Как нормализовать данные в PySpark перед обучением ML-моделей

В прошлый раз мы говорили о методах NLP в PySpark. Сегодня рассмотрим методы нормализации и стандартизации данных модуля ML библиотеки PySpark. Читайте в нашей статье: применение Normalizer, StandardScaler, MinMaxScaler и MaxAbsScaler для нормализация и стандартизации данных. Нормализация и стандартизация — методы шкалирования данных Нормализация (normalization) и стандартизация (standardization) являются методами изменения диапазонов значений — шкалирования. Шкалирование особенно полезно в машинном обучении (Machine Learning), поскольку разные атрибуты могут измеряться в разных диапазонах, или значения одного атрибута варьируются слишком сильно. Например, один атрибут имеет диапазон от 0 до 1, а второй — от 1 до 1000. Для задачи регрессии второй атрибут оказывал бы большое влияние на обучение, хотя не факт, что он является более важным, чем первый. Нормализация и стандартизация отличаются своими Далее …

Natural Language Processing (NLP) в PySpark: токенизация, стоп-слова, N-граммы

Обработка естественного языка (Natural Language Processing, NLP) является перспективным направлением Data Science и Big Data. Сегодня мы расскажем вам о применении методов NLP в PySpark. В этой статье вы узнаете об обычной токенизации и на основе регулярных выражений, стоп-словах русского и английского языков, а также о N-граммах в PySpark. Токенизация в PySpark Токенизация — это процесс разбиения текста на текстовые единицы (чаще всего слова). В PySpark за это отвечают Tokenizer и RegexTokenizer. Создадим DataFrame, который состоит из простых предложений, а также определим функцию (udf), которая будет считать количество слов в списке. from pyspark.ml.feature import Tokenizer, RegexTokenizer from pyspark.sql.functions import col, udf from pyspark.sql.types import IntegerType sentenceDataFrame = spark.createDataFrame([ (0, «Привет я слышал о NLP PySpark»), (1, «Как же хочется попасть Далее …

Stateful vs Stateless в потоковой обработке Big Data на примере Apache Spark Structured Streaming

курсы по Apache Spark, обучение Spark Streaming, Spark, обработка данных, большие данные, Big Data, SQL, Python, Hadoop, HDFS

Сегодня поговорим про сохранение состояний при потоковой обработке больших данных с помощью Apache Spark и рассмотрим особенности Structured Streaming в новой версии этого популярного Big Data фреймворка. Читайте далее про Stateless и Stateful приложений в реальном времени, управление состояниями, связь DStream с RDD и UI в Spark Structured Streaming. Состояния в потоковой обработке данных или что такое Stateful и Stateless Напомним, потоковая обработка данных выполняется в реальном времени по мере их поступления и предполагает 2 способа выполнения [1]: без сохранения состояния (stateless), когда каждая входящая запись обрабатывается автономно не зависимо от других, например, отображение (map), фильтрация, объединение со статическими данными и прочие подобные операции. с сохранением состояния (stateful), когда обработка входящей записи зависит от результата ранее обработанных записей. Поэтому необходимо поддерживать Далее …

Ускорение в 40 раз и другие фишки SparkR в Apache Spark 3.0

Spark, обработка данных, большие данные, Big Data, SQL, Python, R

Вчера мы рассказывали про нововведения в Apache Spark 3.0 и упомянули про улучшения в SparkR. Сегодня рассмотрим, почему в новой версии фреймворка вызов пользовательских функций стал быстрее в 40 раз и какие еще проблемы работы с R были решены в этом релизе. Что не так со SparkR: десериализация и особенности структур данных Одним из достоинств Apache Spark считается богатый API: помимо Java, Scala и Python, этот Big Data фреймворк также позволяет работать с языком R, который считается весьма популярным в области анализа данных, о чем мы писали здесь. Однако, на практике при работе со SparkR можно было столкнуться со следующими трудностями [1]: неоднозначность типовых структурах данных. В языке R frame – это объект в оперативной памяти (in-memory) в виде списка векторов одинаковой Далее …

Apache Spark 3.0: что нового?

Spark, обработка данных, большие данные, Big Data, SQL, Python, R, PySpark

Чтобы сделать наши курсы по Spark еще более интересными и добавить в них самые актуальные тренды, сегодня мы расскажем о новом релизе этого Big Data фреймворка. Читайте далее, что нового в Apache Spark 3.0 и почему Spark SQL стал еще лучше. 10 лет в Big Data или немного истории В июне 2020 года вышел новая версия Apache Spark – 3.0. Примечательно, что в этом году проект празднует первый серьезный юбилей – 10 лет. Напомним, Apache Spark, как и многие Big Data проекты, начал свой путь из академической среды – исследовательской лаборатории AMPlab Калифорнийского университета Беркли, которая специализировалась на вычислениях с интенсивным использованием данных. Команда ученых AMPlab создала новый движок для решения проблем с обработкой больших объемов данных, одновременно предоставив API Далее …

Линейная регрессия, регуляризация, кросс-валидация и Grid Search в PySpark

В прошлый раз мы говорили о решении задачи классификации в рамках Machine Learning с помощью PySpark MLlib. Сегодня рассмотрим задачу регрессии. Читайте далее: что такое линейная регрессия, L1 и L2 регуляризация, алгоритм подбора значений гиперпараметров Grid Search, а также применение кросс-валидации в PySpark. Датасет с домами на продажу Обучать модель машинного обучения (Machine Learning) будем на датасете с домами на продажу в округе Кинг (Вашингтон, США). Его можно скачать напрямую с Kaggle или воспользоваться Kaggle API, как мы описывали здесь. Датасет содержит такие атрибуты, как цена, количество комнат, количество ванных комнат, дату постройки, площадь на квадратный фут (1 фут = 0.3 метра) и другие. Код на Python для инициализации Spark-приложения и создания DataFrame выглядит следующим образом: from pyspark.sql import SparkSession Далее …

Как подключить PySpark и Kaggle в Google Colab

Недавно мы рассказывали, что такое PySpark. Сегодня рассмотрим, как подключить PySpark в Google Colab, а также как скачать датасет из Kaggle прямо в Google Colab, без непосредственной загрузки программ и датасетов на локальный компьютер. Google Colab Google Colab — выполняемый документ, который позволяет писать, запускать и делиться своим Python-кодом через Google Drive. Это тот же самый Jupyter Notebook, только блокноты хранятся в Google Drive, а выполняются на сервере. В отличие от традиционных инструментов разработки, Jupyter Notebook состоит из ячеек, где можно писать код (чаще всего на Python), запускать и сразу же смотреть результаты. Кроме того, ячейки блокнотов могут содержать не только код, но и текст, формулы, рисунки и видео. Особенную популярность блокноты получили у Data Scientist’ов, поскольку позволяют мгновенно тестировать Далее …

Чем Apache Zeppelin лучше Jupyter Notebook для интерактивной аналитики Big Data: 4 ключевых преимущества

Livy, Python, Spark, архитектура, обработка данных, Big Data, большие данные, безопасность, security, Hadoop, PySpark, Arenadata, Apache Zeppelin, Jupyter Notebook

В этой статье мы рассмотрим, что такое Apache Zeppelin, как он полезен для интерактивной аналитики и визуализации больших данных (Big Data), а также чем этот инструмент отличается от популярного среди Data Scientist’ов и Python-разработчиков Jupyter Notebook. Что такое Apache Zeppelin и чем он полезен Data Scientist’у Начнем с определения: Apache Zeppelin – это интерактивный веб-блокнот (или «ноутбук» от notebook) с открытым исходным кодом, который поддерживает практически все этапы работы с данными в Data Science, от извлечения до визуализации, в т.ч. интерактивный анализ и совместное использование документов. Он интегрирован с Apache Spark, Flink, Hadoop, множеством реляционных и NoSQL-СУБД (Cassandra, HBase, Hive, PostgreSQL, Elasticsearch, Google Big Query, Mysql, MariaDB, Redshift), а также поддерживает различные языки программирования, популярные в области Big Data: Python, Далее …

Как управлять собственным Data Flow на Apache Spark с NiFi через Livy: разбираемся с процессорами и контроллерами

Livy, Spark, архитектура, обработка данных, Big Data, большие данные, Hadoop, NiFi, PySpark, Python, ETL

Apache Livy полезен не только при организации конвейеров обработки больших данных (Big Data pipelines) на Spark и Airflow, о чем мы рассказывали здесь. Сегодня рассмотрим, как организовать запланированный запуск пакетных Spark-заданий из Apache NiFi через REST-API Livy, с какими проблемами можно при этом столкнуться и что поможет их решить. Что внутри Apache NiFi или как связаны потоковые файлы, процессоры и контроллеры Напомним, Apache NiFi – это популярный инструмент стека Big Data для маршрутизации потоков данных (Data Flow) и организации ETL-процессов. Его дополнительным преимуществом является наличие наглядного веб-GUI, в котором конечные пользователи могут добавлять новых пунктов назначения и источники данных с возможностью воспроизведения в любое время. Основными понятиями NiFi являются следующие [1]: файл потока данных (FlowFile) – единый фрагмент информации из заголовка и Далее …

Что под капотом Apache Livy: принципы и особенности работы со Spark

AirFlow, Livy, Python, Spark, архитектура, обработка данных, Big Data, большие данные, безопасность, security

Вчера мы рассказывали про особенности совместного использования Apache Spark с Airflow и достоинства подключения Apache Livy к этой комбинации популярных Big Data фреймворков. Сегодня рассмотрим подробнее, как работает Apache Livy, а также за счет чего этот гибкий API обеспечивает удобство работы с Python-кодом и общие Spark Context’ы для разных операторов Airflow и не только. Когда вам нужен с Apache Livy: 5 популярных кейсов Прежде всего, отметим типовые сценарии, когда целесообразно использовать Apache Livy при работе со Спарк [1]: необходима единая сессия Spark (session) для нескольких клиентов, которые достаточно компактны и не перегружены сложными настройками; нужно быстро настроить доступ к кластеру Spark; требуется интегрировать Spark в мобильное приложение; необходимо поддерживать работу нестабильного кластера, не изменяя каждый раз его конфигурацию; нужно организовать Далее …