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