Свържете се с нас
 Продължителност 21 часa

Съдържание и теми, включени в курса

Модул 1: Основни принципи на Big Data и Spark

  • Преглед на екосистемата на Big Data и ролята на Spark в съвременните платформи за данни
  • Разбиране на архитектурата на Spark: driver, executors, клъстер мениджър, инертична евалуация, DAG и планиране на изпълнението
  • Разлики между API-тата за RDD и DataFrame и кога да се използва всяка подхода
  • Създаване и конфигуриране на SparkSession и разбиране на основите на конфигурацията на приложението

Модул 2: PySpark DataFrames

  • Четене и записване на данни от корпоративни източници и формати: CSV, JSON, Parquet и Delta
  • Работа с PySpark DataFrames: трансформации, действия, изрази за колони, филтриране, свързвания и агрегации
  • Прилагане на напреднали операции като прозореви функции, обработка на времеви печати и работа с вградени данни
  • Прилагане на проверки за качество на данните и записване на переиспользуваем, поддържащ се код на PySpark

Модул 3: Основни принципи на Kubernetes и Docker за потребители на Spark

  • Разбиране на връзката между Docker образите и Kubernetes подовете (pods) с процесите на Spark driver и executors — концептуален поглед за потребители на клъстера, а не администратори
  • Разбиране на това, което се случва при изпълнение на Spark задача в Kubernetes: планиране на подовете, заявки и лимити на ресурси, и как настройките на сесията се отнасят до тях
  • Разбиране на това, което контролирате чрез параметри на Spark сесията, в сравнение с това, което екипът на платформата контролира чрез предоставянето на клъстера — и защо тази граница е важна за настройката
  • Практическо упражнение: Инспектиране на работеща Spark-on-Kubernetes задача в песъчници клъстър и идентифициране на driver и executor подовете

Модул 4: Конфигурация на Spark сесията в Kubernetes — дълбоко потопяване

  • Разбиране на броя на executor-ите спрямо размера им: компромис между памет и ядра и как да разсъждавате за тях
  • Разпределение на паметта за driver и executors, допълнителна памет (overhead) и как те се трансформират в ресурси на подовете
  • Динамично разпределение: как се държи в Kubernetes, кога спестява ресурси и кога не
  • Практическо упражнение: Пускане на една и съща задача с различни конфигурации на executor и ядра и сравняване на времето за изпълнение и използването на ресурси

Модул 5: Поведение при мащабиране и оптимизация на разходите

  • Разбиране на това как добавянето или премахването на възли променя поведението на задачата, времето за завършване и потреблението на ресурси
  • Сравняване на много малки executors спрямо по-малко големи: компромиси между ефективност и разходи
  • Поведение при shuffle и настройка на shuffle партиции, включително оценка на въздействието върху разходите от изборите на конфигурация
  • Практическо упражнение: Мащабиране на песъчници клъстера от пет до десет възела и наблюдение на ефекта върху времето за завършване на задачата и потреблението на ресурси

Модул 6: Ефективна консумация и партициониране на данни

  • Разбиране на проблема с малките файлове: защо източници, разделени на много Parquet файлове от 1–5 MB, влошават ефективността и изкривяват партиционирането
  • Стратегии за репартициониране и обединяване (coalescing)
  • Контролиране на размера на партициите при четене и записване
  • Ефективно записване на Parquet, за да се избегне повторно създаване на проблема с малките файлове по-надолу в потока
  • Практическо упражнение: Зареждане на набор от данни, съставен от много малки Parquet партиции, прилагане на различни стратегии за репартициониране и сравняване на ефективността преди и след оптимизация

Модул 7: Управление на паметта в Pandas и диагностика на сривове

  • Разбиране на основните причини за грешки за изчерпване на паметта (out-of-memory) в Pandas и разпознаване на симптомите
  • Прилагане на модели за енерго-ефективна конверсия между Spark и Pandas
  • Избягване на неконтролируемо разширение на паметта при записване на големи набори от данни в CSV
  • Използване на по-члено (chunked) обработка и оптимизация на типове данни (dtype) за ограничени среди
  • Практическо упражнение: Възпроизвеждане на типичен сценарий за изчерпване на паметта в Pandas и неговото решаване чрез chunking и оптимизация на dtype

Модул 8: Polars като допълнителен инструмент

  • Позициониране на Polars спрямо Pandas: характеристики на ефективността, инертична евалуация и поведение на паметта
  • Разбиране на това къде Polars се вписва заедно с PySpark и Pandas в съвременните облачни стек-ове за данни и пътеки за миграция, включително среди на AWS
  • Практическо упражнение: Переписване на Pandas-интензивна трансформация в Polars и сравняване на използването на паметта и скоростта на обработка

Модул 9: Прилагане на оптимизация в ETL и ML натоварвания

  • Прилагане на принципите за конфигурация, партициониране и управление на паметта в реалистичен ETL пайплайн
  • Разбиране на съображенията за оптимизация, специфични за работни натоварвания за машинно обучение, изпълнявани в един и същ клъстер
  • Прилагане на практически процес за настройка, за систематична диагностика на проблеми с разходите и ефективността
  • Практическо упражнение: Завършване на мини-проект от край до край, комбиниращ зареждане на данни, трансформация и просто стъпка за обучение на модел, като участниците сами настройват конфигурацията на Spark

Изисквания

Участниците трябва да имат:

  • Практически опит с програмане на Python, включително функции, модули и основни концепции на обектно-ориентираното програмиране.
  • Основи до междинен опит в работата с Pandas и потоци за обработка на таблични данни.
  • Базово познаване на PySpark и Spark DataFrames, включително четене на данни, трансформации, действия, свързвания (joins) и агрегации.
  • Общо разбиране на концепциите за SQL и обработка на данни, включително филтриране, групиране и свързване на набори от данни.
  • Базово познаване на концепциите за Docker и Kubernetes, като контейнери, образи и подове (pods). Не се изисква опит в администрирането на Kubernetes.
  • Базово разбиране на общи формати на данни като CSV, JSON и Parquet.

Участниците не трябва да са администратори на Kubernetes или специалисти по инфраструктура. Курсът се фокусира върху начина, по който данните инженери, разработчиците и специалистите по данни могат да разбират и оптимизират своите Spark работни натоварвания, изпълнявани в Kubernetes, от гледна точка на приложението и конфигурацията.

Целева аудитория

Този курс е предназначен за професионалисти, които разработват, поддържат или оптимизират работни натоварвания за обработка на данни и машинно обучение, използвайки Python и Spark в облачни или контейнеризирани среди.

Той е особено подходящ за:

  • Данни инженери, работещи с PySpark, разпределена обработка на данни и ETL пайплайни.
  • Специалисти по данни, обработващи големи обеми данни или изпълняващи работни натоварвания за машинно обучение с Spark, Pandas или Polars.
  • Разработчици на Python, работещи с приложения, интензивно обработващи данни, и стремящи се към подобрение на ефективността на паметта и обработката.
  • Инженери по машинно обучение, управляващи работни натоварвания за подготовка на данни и обучение на модели в споделени Kubernetes или облачни среди.
  • Аналитични инженери, работещи с големи набори от данни и търсящи начини за повишаване на ефективността на обработката.
  • DevOps, платформени и облачни инженери, поддържащи Spark работни натоварвания в Kubernetes и нуждаещи се от разбиране на това как конфигурацията на ниво приложение влияе върху използването на ресурси и ефективността.
  • Технически лидери и архитекти на решения, участващи в проектирането или оптимизацията на модерни платформи за обработка на данни.

Брой участници


Цена за участник

Отзиви от участници (1)

Предстоящи Курсове

Свързани Kатегории