Contattataci

Struttura del corso

Modulo 1: Fondamenti di Big Data e Spark

  • Panoramica dell'ecosistema Big Data e il ruolo di Spark nelle piattaforme di dati moderne
  • Comprensione dell'architettura di Spark: driver, esecutori, cluster manager, valutazione pigra, DAG e pianificazione dell'esecuzione
  • Differenze tra le API RDD e DataFrame e quando utilizzare ciascuno dei due approcci
  • Crea e configurazione di SparkSession e comprensione dei fondamenti della configurazione dell'applicazione

Modulo 2: PySpark DataFrames

  • Lettura e scrittura di dati da fonti e formati aziendali: CSV, JSON, Parquet e Delta
  • Lavoro con PySpark DataFrames: trasformazioni, azioni, espressioni di colonna, filtraggio, join e aggregazioni
  • Implementazione di operazioni avanzate come le funzioni finestra, la gestione dei timestamp e il lavoro con dati annidati
  • Applicazione di controlli di qualità dei dati e scrittura di codice PySpark riutilizzabile e mantenibile

Modulo 3: Fondamenti di Kubernetes e Docker per utenti Spark

  • Comprensione di come le immagini Docker e i pod Kubernetes si relazionino ai processi driver e esecutori di Spark — una visione concettuale per i consumatori del cluster, non per gli amministratori
  • Comprensione di ciò che accade quando un job Spark viene eseguito su Kubernetes: pianificazione dei pod, richieste e limiti delle risorse, e come le impostazioni della sessione si mappino su di essi
  • Comprensione di ciò che si controlla attraverso i parametri della sessione Spark rispetto a ciò che il team di piattaforma controlla attraverso il provisioning del cluster — e perché questo confine sia importante per il tuning
  • Esercizio pratico: Ispezionare un job Spark-on-Kubernetes in esecuzione nel cluster sandbox e identificare i pod driver ed esecutori

Modulo 4: Configurazione della sessione Spark su Kubernetes — Approfondimento

  • Comprensione del numero di esecutori rispetto alla loro dimensione: compromesso tra memoria e core e come ragionare su di essi
  • Allocazione della memoria per driver ed esecutori, overhead di memoria, e come questi si traducano in risorse dei pod
  • Allocazione dinamica: come si comporta su Kubernetes, quando risparmia risorse e quando no
  • Esercizio pratico: Eseguire lo stesso job con diverse configurazioni di esecutori e core e confrontare tempo di esecuzione e utilizzo delle risorse

Modulo 5: Comportamento di scalabilità e ottimizzazione dei costi

  • Comprensione di come l'aggiunta o la rimozione di nodi cambi il comportamento del job, il tempo di completamento e il consumo di risorse
  • Confronto tra molti esecutori piccoli e pochi grandi: compromessi tra prestazioni e costi
  • Comportamento dello shuffle e tuning delle partizioni di shuffle, inclusa la stima dell'impatto sui costi delle scelte di configurazione
  • Esercizio pratico: Ridimensionare il cluster sandbox da cinque a dieci nodi e osservare l'effetto sul tempo di completamento del job e sul consumo di risorse

Modulo 6: Ingestione dati efficiente e partizionamento

  • Comprensione del problema dei file di piccole dimensioni: perché le fonti divise in molti file Parquet da 1-5 MB degradino le prestazioni e distorcano il partizionamento
  • Strategie di ripartizionamento e coalescenza
  • Controllo delle dimensioni delle partizioni in lettura e in scrittura
  • Scrittura efficiente di Parquet per evitare la ricreazione del problema dei file di piccole dimensioni a valle
  • Esercizio pratico: Caricare un set di dati composto da molte partizioni Parquet piccole, applicare diverse strategie di ripartizionamento e confrontare le prestazioni prima e dopo l'ottimizzazione

Modulo 7: Gestione della memoria in Pandas e diagnosi dei guasti

  • Comprensione delle cause profonde degli errori out-of-memory in Pandas e riconoscimento dei sintomi
  • Applicazione di schemi di conversione efficienti in termini di memoria tra Spark e Pandas
  • Evitare esplosioni di memoria quando si scrivono grandi set di dati in CSV
  • Utilizzo dell'elaborazione in blocchi (chunked processing) e dell'ottimizzazione dei dtype per ambienti vincolati
  • Esercizio pratico: Riprodurre un tipico scenario out-of-memory di Pandas e risolverlo utilizzando chunking e ottimizzazione dei dtype

Modulo 8: Polars come strumento complementare

  • Posizionamento di Polars rispetto a Pandas: caratteristiche di prestazioni, valutazione pigra e comportamento della memoria
  • Comprensione di dove Polars si integri con PySpark e Pandas nei moderni stack di dati cloud e nelle roadmap di migrazione, inclusi gli ambienti AWS
  • Esercizio pratico: Riscrivere una trasformazione pesante in Pandas in Polars e confrontare l'utilizzo della memoria e la velocità di elaborazione

Modulo 9: Applicazione dell'ottimizzazione a carichi di lavoro ETL e ML

  • Applicazione dei principi di configurazione, partizionamento e gestione della memoria a una pipeline ETL realistica
  • Comprensione delle considerazioni di ottimizzazione specifiche per i carichi di lavoro di machine learning che girano sullo stesso cluster
  • Applicazione di un workflow di tuning pratico per diagnosticare sistematicamente problemi di costi e prestazioni
  • Esercizio pratico: Completare un mini-progetto end-to-end che combina caricamento dati, trasformazione e un semplice passaggio di addestramento del modello, con i partecipanti che regolano la configurazione di Spark autonomamente

Requisiti

I partecipanti dovrebbero possedere:

  • Esperienza pratica nella programmazione Python, incluse funzioni, moduli e concetti base della programmazione orientata agli oggetti.
  • Esperienza base o intermedia nel lavoro con Pandas e flussi di lavoro per l'elaborazione di dati tabellari.
  • Familiarità di base con PySpark e Spark DataFrames, inclusa la lettura dei dati, trasformazioni, azioni, join e aggregazioni.
  • Una conoscenza generale di SQL e concetti di elaborazione dati, inclusa la filtrazione, il raggruppamento e l'unione di set di dati.
  • Familiarità di base con concetti Docker e Kubernetes, come container, immagini e pod. Non è richiesta esperienza nella gestione di Kubernetes.
  • Una conoscenza di base dei formati di dati comuni come CSV, JSON e Parquet.

I partecipanti non devono essere amministratori Kubernetes o specialisti infrastrutturali. Il corso si concentra su come data engineer, sviluppatori e data scientist possano comprendere e ottimizzare i propri carichi di lavoro Spark eseguiti su Kubernetes, da una prospettiva applicativa e di configurazione.

Pubblico di riferimento

Questo corso è progettato per professionisti che sviluppano, mantengono o ottimizzano carichi di lavoro per l'elaborazione dati e il machine learning utilizzando Python e Spark in ambienti cloud o containerizzati.

È particolarmente adatto per:

  • Data Engineer che lavorano con PySpark, elaborazione dati distribuita e pipeline ETL.
  • Data Scientist che elaborano grandi set di dati o eseguono carichi di lavoro di machine learning con Spark, Pandas o Polars.
  • Sviluppatori Python che lavorano con applicazioni ad alto utilizzo di dati e desiderano migliorare l'efficienza della memoria e le prestazioni di elaborazione.
  • Machine Learning Engineer che gestiscono carichi di lavoro per la preparazione dei dati e l'addestramento dei modelli su ambienti Kubernetes o cloud condivisi.
  • Analytics Engineer che lavorano con grandi set di dati e cercano di migliorare l'efficienza dell'elaborazione dei dati.
  • Ingegneri DevOps, di Piattaforma e Cloud che supportano carichi di lavoro Spark su Kubernetes e devono comprendere come la configurazione a livello applicativo influenzi l'utilizzo delle risorse e le prestazioni.
  • Lead Tecnici e Architetti di Soluzione coinvolti nella progettazione o ottimizzazione di piattaforme moderne per l'elaborazione dati.
 21 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (1)

Corsi in Arrivo

Categorie relative