Intrati in legatura
 Durata 21 ore

Schița de curs

Modulul 1: Bazele Big Data & Spark

  • Prezentarea ecosistemului Big Data și rolul Spark în platformele de date moderne
  • Înțelegerea arhitecturii Spark: driver, executori, cluster manager, evaluare leneșă (lazy evaluation), DAG și planificarea execuției
  • Diferențele între API-urile RDD și DataFrame și când să folosești fiecare abordare
  • Crearea și configurarea SparkSession și înțelegerea fundamentelor configurării aplicației

Modulul 2: PySpark DataFrames

  • Citirea și scrierea datelor din surse și formate enterprise: CSV, JSON, Parquet și Delta
  • Lucrul cu PySpark DataFrames: transformări, acțiuni, expresii de coloană, filtrare, joinuri și agregări
  • Implementarea operațiilor avansate, cum ar fi funcțiile de fereastră (window functions), gestionarea marcajelor temporale și lucrul cu date imbricate
  • Aplicarea verificărilor calității datelor și scrierea de cod PySpark reutilizabil și ușor de întreținut

Modulul 3: Fundamente de Kubernetes & Docker pentru utilizatorii Spark

  • Înțelegerea relației dintre imaginile Docker și pod-urile Kubernetes, raportată la procesele driver și executor din Spark – o perspectivă conceptuală pentru utilizatorii clusterului, nu pentru administratori
  • Înțelegerea proceselor care au loc când o sarcină Spark rulează pe Kubernetes: programarea podurilor (scheduling), cerințele și limitele de resurse și cum setările sesiunii se mapează pe acestea
  • Înțelegerea a ceea ce controlezi prin parametrii de sesiune Spark față de ceea ce echipa de platformă controlează prin aprovizionarea clusterului – și de ce această delimitare este importantă pentru tuning
  • Exercițiu hands-on: Inspectezi o sarcină Spark-on-Kubernetes în curs de execuție în clusterul sandbox și identifici pod-urile driver și executor

Modulul 4: Configurarea Sesiunii Spark pe Kubernetes – Detaliu aprofundat

  • Înțelegerea numărului de executori versus mărimea executorilor: compromisurile dintre memorie și nucleu și cum să raționezi despre acestea
  • Alocarea memoriei pentru driver și executori, overhead-ul de memorie și cum acestea se traduc în resurse de pod
  • Allocarea dinamică (Dynamic allocation): cum se comportă pe Kubernetes, când economisește resurse și când nu
  • Exercițiu hands-on: Rulezi aceeași sarcină cu configurații diferite de executori și nuclee și compari timpul de rulare și utilizarea resurselor

Modulul 5: Comportamentul la scalare & Optimizarea costurilor

  • Înțelegerea modului în care adăugarea sau eliminarea nodurilor modifică comportamentul sarcinii, timpul de finalizare și consumul de resurse
  • Compararea mai multor executori mici versus un număr mai mic de executori mari: compromisuri între performanță și costuri
  • Comportamentul shuffle și ajustarea partițiilor shuffle (tuning), inclusiv estimarea impactului asupra costurilor al alegerilor de configurare
  • Exercițiu hands-on: Scalezi clusterul sandbox de la cinci la zece noduri și observi efectul asupra timpului de finalizare a sarcinii și a consumului de resurse

Modulul 6: Ingestion eficient al datelor & Partizionare

  • Înțelegerea problemei fișierelor mici (small-files problem): de ce sursele împărțite în multe fișiere Parquet de 1–5 MB degradează performanța și denaturează partionarea
  • Strategii de repartizionare și coalescență
  • Controlul dimensiunii partițiilor la citire și la scriere
  • Scrierea eficientă a Parquet pentru a evita recrearea problemei fișierelor mici în aval (downstream)
  • Exercițiu hands-on: Încarci un set de date compus din multe partiții Parquet mici, aplici diferite strategii de repartizionare și compari performanța înainte și după optimizare

Modulul 7: Gestionarea memoriei în Pandas & Diagnosticarea erorilor

  • Înțelegerea cauzelor rădăcină ale erorilor de tip „out-of-memory” în Pandas și recunoașterea simptomelor
  • Aplicarea modelelor de conversie eficiente din punct de vedere al memoriei între Spark și Pandas
  • Evitarea exploziilor de memorie (memory blow-ups) la scrierea de seturi mari de date în CSV
  • Folosirea procesării pe chunk-uri (chunked processing) și a optimizării tipurilor de date (dtype) pentru medii cu resurse limitate
  • Exercițiu hands-on: Reproduci un scenariu tipic de „out-of-memory” în Pandas și îl rezolvi folosind chunking și optimizarea dtype

Modulul 8: Polars ca instrument complementar

  • Poziționarea Polars față de Pandas: caracteristici de performanță, evaluare leneșă și comportament al memoriei
  • Înțelegerea locului unde se încadrează Polars alături de PySpark și Pandas în stack-urile de date cloud moderne și în roadmap-urile de migrare, inclusiv în mediile AWS
  • Exercițiu hands-on: Rescrii o transformare grea în Pandas în Polars și compari utilizarea memoriei și viteza de procesare

Modulul 9: Aplicarea optimizării în sarcinile ETL & ML

  • Aplicarea principiilor de configurare, partionare și gestionare a memoriei într-un pipeline ETL realist
  • Înțelegerea considerațiilor de optimizare specifice sarcinilor de machine learning care rulează pe același cluster
  • Aplicarea unui workflow practic de tuning pentru a diagnostica sistematic problemele de cost și performanță
  • Exercițiu hands-on: Finalizezi un mini-proiect de cap la cap care combină încărcarea datelor, transformarea și un pas simplu de antrenare de model, cu participanții ajustând configurația Spark singuri

Cerințe

Participanții ar trebui să aibă:

  • Experiență practică cu programarea în Python, inclusiv funcții, module și concepte de bază de programare orientată obiect.
  • Experiență de bază până la intermediară în lucrul cu Pandas și fluxuri de lucru pentru procesarea datelor tabulare.
  • Familiaritate de bază cu PySpark și Spark DataFrames, inclusiv citirea datelor, transformări, acțiuni, joinuri și agregări.
  • O înțelegere generală a conceptelor SQL și de procesare a datelor, inclusiv filtrare, grupare și îmbinarea seturilor de date.
  • Familiaritate de bază cu conceptele Docker și Kubernetes, cum ar fi containerele, imaginile și pod-urile. Nu este necesară experiență în administrarea Kubernetes.
  • Înțelegere de bază a formatelor de date comune, cum ar fi CSV, JSON și Parquet.

Participanții nu trebuie să fie administratori Kubernetes sau specialiști în infrastructură. Cursa se concentrează pe modul în care inginerii de date, dezvoltatorii și științificii de date pot înțelege și optimiza sarcinile lor Spark care rulează pe Kubernetes din perspectiva aplicației și a configurării.

Public țintă

Acest curs este conceput pentru profesioniștii care dezvoltă, mentionează sau optimizează sarcini de procesare a datelor și machine learning utilizând Python și Spark în medii cloud sau containerizate.

Este în mod special potrivit pentru:

  • Inginerii de date care lucrează cu PySpark, procesarea distribuită a datelor și pipeline-uri ETL.
  • Științificii de date care procesează seturi mari de date sau rulează sarcini de machine learning cu Spark, Pandas sau Polars.
  • Dezvoltatorii Python care lucrează cu aplicații intensive din punct de vedere al datelor și doresc să îmbunătățească eficiența de memorie și performanța de procesare.
  • Inginerii de machine learning care gestionează sarcinile de pregătire a datelor și antrenare de modele în medii Kubernetes sau cloud partajate.
  • Inginerii de analitică care lucrează cu seturi mari de date și caută să îmbunătățească eficiența procesării datelor.
  • Inginerii DevOps, Platform și Cloud care susțin sarcinile Spark pe Kubernetes și au nevoie de a înțelege cum configurarea la nivelul aplicației afectează utilizarea resurselor și performanța.
  • Liderii tehnici și Arhitecții de soluții implicați în proiectarea sau optimizarea platformelor moderne de procesare a datelor.

Numărul de participanți


Pret per participant

Mărturii (1)

Cursuri viitoare

Categorii înrudite