Apache Spark

Apache Spark

Apache Spark является самый популярным инструментом среди инженеров данных, аналитиков и инженеров машинного обучения. Его главная задача это обработка данных. С помощью Spark можно подключаться к любому источнику данных, читать большие данные и обрабатывать их в оперативной памяти с использованием распределенного вычисления (distributed computing).

В зависимости от вашей роли вам необходимо знать от написание запросов в PySpark и SparkSQL (реже Scala) до развертывание решений Big Data на Apache Spark.

Мы собрали несколько видео и лабораторных работ, которые вам помогут понять, что такое Apache Spark и как им пользоваться. Давайте посмотрим не примеры использования для ролей:

  • Дата Инженер:
    • Создание Data Lake или Lake House. Если делаем Lakehouse, то формат таблицы будет по умолчанию Delta, но сейчас уже чаще используется Iceberg.
    • Трансформация и обоботка данных для ETL/ELT процессов.
    • Потоковая обработка с Apache Spark Streaming
    • Помощь ML команде в создание ML решений, например создание Feature Store для предрасчета параметров ML модели.
  • Аналитик и BI разработчик:
    • Типичные запросы к Data Lake/Lakehouse с использование SparkSQL, PySpark.
    • Добавиление и модификация ETL jobs (data pipelines)
    • Чтение source code, то есть понимание трансформаций данных.

🇷🇺 / 🇬🇧 - язык материалов
⭐ - наша рекомендация

Посмотрите видео Что такое Apache Spark 🇷🇺 ⭐.

В этом видео вы узнаете:

  • Узнаем история Apache Spark
  • Посмотрим примеры архитектур с использованием Spark
  • Разберемся когда его можно использовать
  • Узнаем про основные компоненты
  • Узнаем, обозначает термин Unified Analytics

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

Вы можете ознакомится с ресурсами по самостоятельному обучению Python на нашем портале.

Поэтому в этом уроке мы посмотрим, какие команды нам необходимо знать на примере Databricks notebooks. У вас будет замечательная возможно попрактиковаться, и если вдруг вы мало используете Python, то самое время попробовать его, так как дальше нам очень понадобится.

Минимум Python для работы со Spark (JUST ENOUGH PYTHON FOR SPARK) 🇷🇺 ⭐.

В этом видео вы узнаете:

  • Что такое Databricks
  • Как запустить Community Edition Databricks и какие есть еще варианты для бесплатного Spark
  • Переменные и типы данных в Python
  • Условия и циклы
  • Методы, функции и библиотеки
  • Коллекции и классы

Для лабораторной работы вам нужно:

  • Создать Databricks Community Edition. Если какие-то проблемы с Databricks, можно все делать на локальном спарке. В следующем уроке покажу, как можно его установить.
  • Испортировать Notebooks с примерами для Just Enougth Python for Spark - Репозиторий с кодом
  • Выполнить задачки в папке Labs

Так же вы можете использовать Google Collab или локальный Spark. Для решения Notebooks может подойти Jupyter Notebooks.

Теперь мы можем начать работать с Apache Spark на локальной машине. Посмотрите видео - Начало работы с Apache Spark 🇷🇺 ⭐.

В этом видео вы узнаете:

  • Скачаем и запустим Apache Spark
  • Посмотрим как запустить Spark на Windows
  • Посмотрим на Spark UI
  • Узнаем про основные компоненты Spark
  • Начнем использовать PySpark
  • Начнем использовать spark-submit

Вы можете посмотреть видео про запуск программы в Apache Spark 🇷🇺 ⭐.

В качестве задания вы можете выполнить задание:

  1. Ваша задача установить Apache Spark на ваш компьютер и запустить PySpark. Этого может хватить вам для изучения спарка, практически до конца модуля. Так как команды везде очень похожи, а вот интерфейс и конфигурация разные.
  2. Вам нужно взять программу про M&Ms из нашего репозитория и также взть файл с данными в том же репозитории в папке data.
  3. Запустить спарк программу используя spark-submit и передать в качестве аргумента месторасположения файла с данными.
  4. Вам необходимо взять тот же код про M&Ms, но теперь нужно будет его выполнить в интерактивном режиме. Я это сделал на примере Databricks, если есть доступ к нему, сделайте там, если нет, используйте командную строку или попробуйте вот этот рецепт Get Started with PySpark and Jupyter Notebook in 3 Minutes

Мы продолжим Знакомство с Spark API и потренируемся в написании PySpark.

В этом видео вы узнаете:

  • что такое RDD (Resilient Distributed Datasets)
  • что такое DataFrame
  • посмотрим на пример синтаксиса Scala vs Python
  • типы данных Spark
  • схему(schema) dataframe
  • колонки (colums) и вычисляемы (expressions) поля dataframe
  • основные операции при работе с dataframe (Reader, Wrtiter)
  • примеры чтения разных источников и файлов (API, база данных, JSON, Parquet, CSV, TXT)
  • различные операции для трансформации, фильтрации и агрегации данных в Spark DataFrame (прям как в SQL)
  • Spark SQL, Catalyst Optimizer
  • план запроса Spark
  • примеры advance Spark функций и ноутбуков в Databticks

В качестве практики попробуйте повторить Запросы PySpark использую Spark CLI. Заодно, мы можем познакомиться ближе с Databriks и их курсом - Обзор курса Databrick - Programming with Apache Spark.

В качестве лабораторной работу, вам нужно будет ответить на вопросы про пожарную службу Сан-Франциско используя файлик с данными sf-fire-calls.csv

Вопросы находятся в файлике sf_fire.py

Теперь мы можем изучить Spark SQL и DataFrame.

В этом видео вы узнаете:

  • Методы SparkSession для работы с SQL
  • Как создавать таблицы и вьюхи
  • Виды таблиц - Managed vs Unmanaged
  • Примеры SQL запросов в PySpark
  • Кеш в Spark
  • Рельтат SQL запроса в DataFrame и наоборот
  • Пример работы с различными файлами в Spark - Parquet, CSV, JSON, AVRO, ORC
  • Пример использования Spark для бинарных файлов и изображений
  • Функции и операции Spark
  • UNION, JOIN для DataFrame
  • Window Functions
  • UDF
  • Партиционирование данных и оптимизация с командами coalesce, repartition.

В качестве лаборатнорной работы вам нужно будет выполнить все запросы из примеров в CLI и Databricks.

Книги:

Курсы:

Статьи:

Вебинары:

results matching ""

    No results matching ""