Siamo entusiasti di annunciare che Apache SparkTM 3.0.0 release è disponibile su Databricks come parte del nostro nuovo Databricks Runtime 7.0. La 3.0.0 La release include oltre 3.400 patch ed è il culmine di enormi contributi da parte della community open-source, apportando importanti progressi nelle funzionalità Python e SQL e ponendo l'attenzione sulla facilità d'uso sia per l'esplorazione che per la produzione. Queste iniziative riflettono come il progetto si sia evoluto per soddisfare più casi d'uso e un pubblico più ampio, e quest'anno si celebra il suo decimo anniversario come progetto open-source.
Ecco le principali nuove funzionalità di Spark 3.0:
Non sono richieste modifiche sostanziali al codice per adottare questa versione di Apache Spark. Per maggiori informazioni, consulta la guida alla migrazione.
Festeggiamo i 10 anni di sviluppo ed evoluzione di Spark
Spark è nato presso l'UC Berkeley’s AMPlab, un laboratorio di ricerca focalizzato sul calcolo intensivo dei dati. I ricercatori di AMPlab stavano lavorando con grandi aziende su scala Internet per risolvere i loro problemi relativi a dati e IA, ma hanno capito che questi stessi problemi sarebbero stati affrontati anche da tutte le aziende con volumi di dati grandi e in crescita. Il team ha sviluppato un nuovo motore per gestire questi carichi di lavoro emergenti e allo stesso tempo rendere le APIs per lavorare con i Big Data molto più accessibili agli sviluppatori.
I contributi della community sono arrivati rapidamente per espandere Spark in diverse aree, con nuove funzionalità per lo streaming, Python e SQL, e questi modelli costituiscono oggi alcuni dei principali casi d'uso di Spark. Questo investimento continuo ha portato Spark al punto in cui si trova oggi, ovvero a essere il motore di fatto per i carichi di lavoro di elaborazione dati, data science, machine learning e analitiche dei dati. Apache Spark 3.0 prosegue questa tendenza migliorando in modo significativo il supporto per SQL e Python, i due linguaggi più utilizzati oggi con Spark, oltre a ottimizzare le prestazioni e l'operatività del resto di Spark.
Miglioramento del motore Spark SQL
Spark SQL è il motore che supporta la maggior parte delle applicazioni Spark. Ad esempio, su Databricks, abbiamo riscontrato che oltre il 90% delle chiamate Spark API utilizza le API DataFrame, set di dati e SQL, insieme ad altre librerie ottimizzate dall'ottimizzatore SQL. Ciò significa che anche gli sviluppatori Python e Scala eseguono gran parte del loro lavoro attraverso il motore Spark SQL. Nella release di Spark 3.0, il 46% di tutte le patch apportate riguardava SQL, migliorando sia le prestazioni che la compatibilità ANSI. Come illustrato di seguito, Spark 3.0 ha ottenuto prestazioni circa 2 volte superiori a quelle di Spark 2.4 in termini di tempo di esecuzione totale. Di seguito, illustriamo quattro nuove funzionalità del motore Spark SQL.
Il nuovo framework Adaptive Query Execution (AQE) migliora le prestazioni e semplifica l'ottimizzazione generando un piano di esecuzione migliore in fase di esecuzione, anche se il piano iniziale è subottimale a causa di statistiche sui dati assenti/imprecise e costi stimati in modo errato. A causa della separazione tra archiviazione e compute in Spark, l'arrivo dei dati può essere imprevedibile. Per tutte queste ragioni, l'adattabilità in fase di esecuzione diventa più critica per Spark rispetto ai sistemi tradizionali. Questa versione introduce tre importanti ottimizzazioni adattive:
Sulla base di un benchmark TPC-DS da 3 TB, rispetto all'assenza di AQE, Spark con AQE può generare un'accelerazione delle prestazioni superiore a 1,5 volte per due query e superiore a 1,1 volte per altre 37 query.
Dynamic Partition Pruning viene applicato quando l'ottimizzatore non è in grado di identificare in fase di compilazione le partizioni che può saltare. Questo non è raro negli schemi a stella, che consistono in una o più tabelle dei fatti che fanno riferimento a un numero qualsiasi di tabelle delle dimensioni. In tali attività operative di join, possiamo eliminare le partizioni che il join legge da una tabella dei fatti, identificando quelle partizioni che risultano dal filtraggio delle tabelle delle dimensioni. In un benchmark TPC-DS, 60 query su 102 mostrano un significativo aumento della velocità compreso tra 2x e 18x.
La conformità ANSI SQL è fondamentale per la migrazione dei carichi di lavoro da altri motori SQL a Spark SQL. Per migliorare la conformità, questa versione passa al calendario gregoriano prolettico e consente inoltre agli utenti di vietare l'uso delle parole chiave riservate di ANSI SQL come identificatori. Inoltre, abbiamo introdotto il controllo dell'overflow in fase di esecuzione nelle attività operative numeriche e l'applicazione dei tipi in fase di compilazione durante l'inserimento di dati in una tabella con uno schema predefinito. Queste nuove convalide migliorano la qualità dei dati.
Suggerimenti di join: Anche se continuiamo a migliorare il compilatore, non vi è alcuna garanzia che il compilatore possa sempre prendere la decisione ottimale in ogni situazione: la selezione dell'algoritmo di join si basa su statistiche ed euristiche. Quando il compilatore non è in grado di fare la scelta migliore, gli utenti possono utilizzare i suggerimenti di join per influenzare l'ottimizzatore a scegliere un piano migliore. Questa versione estende i suggerimenti di join esistenti aggiungendo nuovi suggerimenti: SHUFFLE_MERGE, SHUFFLE_HASH e SHUFFLE_REPLICATE_NL.
Molti sviluppatori Python utilizzano l'API di pandas per le strutture di dati e l'analisi dei dati, ma è limitata all'elaborazione su un singolo nodo. Abbiamo inoltre continuato a sviluppare Koalas, un'implementazione dell'API di pandas basata su Apache Spark, per rendere i data scientist più produttivi quando lavorano con i Big Data in ambienti distribuiti. Koalas elimina la necessità di creare molte funzioni (ad esempio, il supporto per il plotting) in PySpark per ottenere prestazioni efficienti su un cluster.
Dopo più di un anno di sviluppo, la copertura dell'API di Koalas per pandas è vicina all'80%. I download mensili di Koalas da PyPI sono cresciuti rapidamente fino a 850.000 e Koalas si sta evolvendo altrettanto rapidamente con una cadenza di rilascio bisettimanale. Sebbene Koalas possa essere il modo più semplice per migrare il codice pandas da un singolo nodo, molti utilizzano ancora le API di PySpark, che sono anch'esse sempre più popolari.
Spark 3.0 introduce diversi miglioramenti alle APIs PySpark:
Migliorare il supporto e l'usabilità di Python in Spark continua a essere una delle nostre massime priorità.
Hydrogen, streaming ed estensibilità
Con Spark 3.0, abbiamo completato i componenti chiave per Project Hydrogen e introdotto nuove funzionalità per migliorare lo streaming e l'estensibilità.
Altri aggiornamenti in Spark 3.0
Spark 3.0 è una release importante per la community, con oltre 3.400 ticket Jira risolti. È il risultato dei contributi di oltre 440 collaboratori, tra cui privati e aziende come Databricks, Google, Microsoft, Intel, IBM, Alibaba, Facebook, Nvidia, Netflix, Adobe e molte altre. In questo post su un blog abbiamo evidenziato alcuni dei principali progressi di SQL, Python e streaming in Spark, ma questa milestone 3.0 include molte altre funzionalità che non sono state trattate qui. Per saperne di più, consulta le note di rilascio e scopri tutti gli altri miglioramenti di Spark, tra cui sorgenti di dati, ecosistema, monitoraggio e altro ancora.
Inizia oggi stesso a usare Spark 3.0
Se vuoi provare Apache Spark 3.0 in Databricks Runtime 7.0, registrati per un account di prova gratuito e inizia in pochi minuti. Usare Spark 3.0 è semplice: basta selezionare la versione "7.0" quando si avvia un cluster.
Scopri di più sulle funzionalità e sui dettagli della versione:
Notícias
December 23, 2024/8 min de leitura
Anúncios
November 19, 2025/7 min de leitura


