Spark SQL
Molti data scientist, analisti e utenti generici di business intelligence utilizzano query SQL interattive per esplorare i dati. Spark SQL è un modulo Spark per l'elaborazione di dati strutturati, che offre un'astrazione di programmazione chiamata DataFrames e può fungere anche da motore query SQL distribuito. Il modulo consente di eseguire query Hadoop Hive non modificate con velocità fino al 100% superiori su implementazioni e dati esistenti. Inoltre, si integra strettamente con il resto dell'ecosistema Spark (ad es. integrando l'elaborazione delle query SQL con il machine learning).
Che cos'è Apache Spark SQL?
Spark SQL porta il supporto nativo di SQL in Spark e snellisce il processo di interrogazione (query) dei dati memorizzati sia in RDD (i set di dati distribuiti di Spark) e in sorgenti esterne. Spark SQL sfuma i confini fra RDD e tabelle relazionali. Unificando queste potenti astrazioni, per gli sviluppatori diventa più facile mescolare comandi SQL quando interrogano dati esterni con analisi complesse, tutto in un'unica applicazione. Concretamente, Spark SQL consente agli sviluppatori di:
- Importare dati relazionali da file Parquet e tabelle Hive
- Eseguire query SQL su dati importati e RDD esistenti
- Scrivere RDD facilmente partendo da tabelle Hive o file Parquet
Spark SQL offre anche un ottimizzatore basato sui costi, storage a colonne e generazione di codice per velocizzare le query. Al tempo stesso è scalabile fino a migliaia di nodi e query di molte ore, grazie al motore Spark che offre piena tolleranza agli errori a metà query, senza richiedere l'utilizzo di un motore diverso per i dati storici.