Apache Spark 4.2.0 è uscito il 14 luglio 2026: è la terza release della serie 4.x, con oltre 1.700 ticket e più di 250 contributori. Ora sta arrivando sulle piattaforme che la maggior parte dei team usa davvero: Databricks lo include in Databricks Runtime 19.0, mentre il nuovo Runtime 2.0 di Microsoft Fabric usa Spark 4.1. Se scrivi Spark SQL o PySpark, questa è la release che rende il lavoro quotidiano decisamente più piacevole, e porta change data capture e un livello semantico dentro Spark open source.
QUALIFY, finalmente
Se hai usato Snowflake, BigQuery o Databricks SQL conosci già QUALIFY: filtra sul risultato di una window function, come HAVING filtra su un'aggregazione. Ora lo supporta anche Spark SQL open source, quindi la classica query "ultima riga per cliente" perde la sua subquery.
SELECT customer_id, order_id, order_date
FROM orders
QUALIFY ROW_NUMBER() OVER (
PARTITION BY customer_id ORDER BY order_date DESC
) = 1;SELECT customer_id, order_id, order_date
FROM (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY customer_id ORDER BY order_date DESC
) AS rn
FROM orders
) t
WHERE rn = 1;Altri miglioramenti all'SQL: lo scripting SQL ha i cursori, la sintassi pipe accetta | oltre a |> e ora supporta le aggregazioni, PIVOT accetta gli alias, DROP TABLE può eliminare una vista, c'è una funzione time_bucket per raggruppare i timestamp in intervalli fissi, e array_agg, collect_list e collect_set supportano IGNORE NULLS. Per un ripasso sulle window function, leggi le window function SQL spiegate.
Le novità principali
- Change data capture
- Una clausola CHANGES e API per DataFrame, PySpark e Connect leggono le modifiche riga per riga, in batch o in streaming.
- Auto CDC
- Le Spark Declarative Pipelines applicano un feed di modifiche a una tabella di destinazione come SCD di tipo 1, senza logica MERGE scritta a mano.
- Metric view
- CREATE VIEW ... WITH METRICS definisce le metriche di business una sola volta, per SQL, strumenti di BI, app e agenti AI.
- Geospaziale
- Tipi GEOMETRY e GEOGRAPHY, funzioni ST_ e lettura e scrittura in Parquet, attivi di default.
- Join NEAREST BY
- Un join top-K per i problemi di "corrispondenza più vicina", come abbinare embedding o luoghi vicini.
- Transazioni DSv2
- I connettori possono confermare più operazioni in modo atomico.
- SQL path
- SET PATH e CURRENT_PATH() controllano dove Spark cerca funzioni e viste.
- Interfaccia web
- Modalità scura, piani di query ricercabili e ingrandibili e confronto affiancato dei piani.
- Java 25
- Spark si compila e gira su Java 25. Il supporto a R 3.x è stato rimosso.
Il change data capture diventa una funzione di primo piano
Molte pipeline dedicano una quantità sorprendente di codice a capire cosa è cambiato da ieri. Spark 4.2 lo standardizza. I connettori ora possono esporre un feed di modifiche, Spark SQL lo legge con una nuova clausola CHANGES, PySpark ha un'API changes() equivalente e le letture in streaming possono restituire le modifiche nette. In più, Auto CDC nelle Spark Declarative Pipelines applica queste modifiche a una tabella di destinazione come slowly changing dimension di tipo 1, così vince l'ultima versione di ogni riga senza scrivere a mano istruzioni MERGE.
Metric view: un livello semantico dentro Spark
Le metric view ti permettono di dichiarare misure e dimensioni una sola volta, con CREATE VIEW ... WITH METRICS, e di riusarle in SQL, dashboard e agenti AI. È la stessa idea del dbt Semantic Layer, delle semantic view di Snowflake e dei modelli semantici di Power BI: una sola definizione di "ricavi" invece di cinque. Se questo modo di modellare è nuovo per te, la nostra guida a star schema e modellazione dimensionale spiega il ragionamento su fatti e dimensioni che ci sta dietro.
PySpark: più veloce di default
Le UDF Python ottimizzate con Arrow e lo scambio di dati via Arrow tra JVM e Python sono ora attivi di default. Arrow sposta i dati per colonne invece che riga per riga, ed è di solito molto più veloce. PySpark ha anche guadagnato DataFrame.zipWithIndex, funzioni di similarità e distanza tra vettori e la Real-Time Mode per le query senza stato.
pip install --upgrade "pyspark==4.2.0"Streaming e prestazioni
- Nomi stabili per le sorgenti: dai un nome a una sorgente streaming e puoi aggiungere, rimuovere o riordinare sorgenti senza rompere i checkpoint.
- Stato più sicuro: riparazione automatica degli snapshot e checksum di riga individuano lo stato corrotto.
- Piani più veloci: pushdown dei join attraverso UNION, generazione di codice whole-stage per UNION, finestre e lettura Parquet più veloci, e serializzazione ORC dei tipi annidati in circa metà del tempo.
- Spark Connect:
head(),take()etail()non scansionano più l'intera tabella.
Dove puoi usarlo
Databricks
Spark 4.2- Runtime
- Databricks Runtime 19.0
- Metric view, Auto CDC e QUALIFY disponibili ora
Microsoft Fabric
Spark 4.1- Runtime
- Fabric Runtime 2.0 (GA)
- Le novità di Spark 4.2, come QUALIFY, aspettano un runtime successivo
Open source
Spark 4.2.0- Dove scaricarlo
- spark.apache.org o pip
- Gira su Java 25
Verifica cosa hai capito
1/3Cosa fa QUALIFY?
Elimina la subquery quando filtri su ROW_NUMBER e simili.
2/3Come applica le modifiche Auto CDC?
Vince l'ultima versione di ogni riga.
3/3Quale novità di PySpark è ora attiva di default?
Più veloce, ma testa le UDF per differenze su tipi e valori nulli.
Hai risposto correttamente a 0 domande su 3.
Lavori più in Python che in Spark? Leggi le novità di Polars 2.0 e la guida all'upgrade a pandas 3.0. Per il formato di tabella del lakehouse che sta sotto, leggi Iceberg v3 spiegato.
Fonti: le note di rilascio di Apache Spark 4.2.0 e il post del blog di Databricks "Introducing Apache Spark 4.2" (16 luglio 2026). Controlla le note di rilascio complete per ogni cambio di comportamento prima dell'upgrade.
