Course Code: pysprkub
Duration: 21 hours

Prerequisites:

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

  • Практически опит с програмане на 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 и нуждаещи се от разбиране на това как конфигурацията на ниво приложение влияе върху използването на ресурси и ефективността.
  • Технически лидери и архитекти на решения, участващи в проектирането или оптимизацията на модерни платформи за обработка на данни.

Overview:

Този тридневен практически курс се фокусира върху изграждането и оптимизацията на ефективни работни натоварвания за обработка на данни, използвайки PySpark, Pandas и Polars в Kubernetes-базирани среди.

Участниците ще развият практично разбиране на начина, по който Spark приложенията се изпълняват в Kubernetes и как решенията за конфигурация на ниво приложение влияят върху ефективността, мащабируемостта, потреблението на ресурси и разходите. Курсът обхваща ключови области за оптимизация, включително размериране на изпълнителите (executors), разпределение на паметта, динамично разпределение, стратегии за партициониране, поведение при shuffle, проблемите с малките файлове и ефективната обработка на Parquet./p>

Курсът също така адресира общите предизвикателства при работа с Pandas, включително ограниченията на паметта и грешките при изчерпване на паметта (out-of-memory), и въвежда Polars като алтернатива с висока ефективност за избрани работни натоварвания за обработка на данни. Чрез практически упражнения участниците ще диагностицират проблеми с ефективността и паметта, ще сравнят различни стратегии за конфигурация и ще приложат техники за оптимизация в реалистични сценарии за ETL и машинно обучение.

Акцентът в курса е върху практическото вземане на решения: разбирането как да се идентифицират слабите места, да се избере подходящият инструмент, да се конфигурира Spark ефективно и да се постигне баланс между ефективността, потреблението на инфраструктурни ресурси и разходите.

Course Outline:

Модул 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

Sites Published:

United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理

香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理

USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars

Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars

Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével

Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars

Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars

Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars

Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes

Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme

Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理

Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars

India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars

United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리

Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars

Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars