🐍 PySpark Master Guide & Documentation


1. Introduzione e Concetti Chiave

PySpark è l'interfaccia Python per Apache Spark. Permette l'elaborazione distribuita di grandi moli di dati (Big Data) utilizzando la semplicità di Python combinata con la potenza del motore Spark.

Perché imparare PySpark?


2. Architettura del Cluster

Spark utilizza un'architettura Master-Slave. È fondamentale capire "chi fa cosa" per scrivere codice efficiente.

Componenti Principali

  1. Driver Program: Il "cervello" (il tuo script Python/Notebook). Contiene lo SparkContext, definisce le trasformazioni e invia il codice ai lavoratori.
  2. Executors (Workers): I "bracci". Sono i processi distribuiti sui nodi del cluster che eseguono materialmente i calcoli e salvano i dati in cache/memoria.
  3. Cluster Manager: (Es. YARN, Mesos, Kubernetes) Gestisce le risorse fisiche (CPU/RAM) per il Driver e gli Executors.

Il DAG (Directed Acyclic Graph)

Quando scrivi codice, Spark costruisce internamente un grafo delle dipendenze (DAG). Ogni nodo del grafo è una trasformazione logica. Spark usa questo grafo per pianificare l'esecuzione spezzettandola in Stages (fasi) e Tasks.

Spark Connect (Nov 2025): Nella versione 4.0+, PySpark supporta anche un'architettura client-server disaccoppiata ("Spark-as-a-Service"), dove il client è leggero e si connette a un cluster remoto.