Spark SQL - Introduzione
Spark introduce un modulo di programmazione per l'elaborazione dei dati strutturati chiamato Spark SQL. Fornisce un'astrazione di programmazione chiamata DataFrame e può fungere da motore di query SQL distribuito.
Caratteristiche di Spark SQL
Le seguenti sono le funzionalità di Spark SQL:
Integrated- Combina perfettamente le query SQL con i programmi Spark. Spark SQL ti consente di eseguire query sui dati strutturati come un set di dati distribuito (RDD) in Spark, con API integrate in Python, Scala e Java. Questa stretta integrazione semplifica l'esecuzione di query SQL insieme a complessi algoritmi analitici.
Unified Data Access- Carica e interroga i dati da una varietà di origini. Gli Schema-RDD forniscono un'unica interfaccia per lavorare in modo efficiente con dati strutturati, incluse tabelle Apache Hive, file parquet e file JSON.
Hive Compatibility- Esegui query Hive non modificate sui magazzini esistenti. Spark SQL riutilizza il frontend Hive e MetaStore, offrendoti piena compatibilità con i dati, le query e le UDF esistenti di Hive. Installalo semplicemente insieme a Hive.
Standard Connectivity- Connessione tramite JDBC o ODBC. Spark SQL include una modalità server con connettività JDBC e ODBC standard del settore.
Scalability- Utilizza lo stesso motore per query sia interattive che lunghe. Spark SQL sfrutta il modello RDD per supportare la tolleranza agli errori di query intermedie, consentendo la scalabilità anche a lavori di grandi dimensioni. Non preoccuparti di utilizzare un motore diverso per i dati storici.
Spark SQL Architecture
La figura seguente spiega l'architettura di Spark SQL:
Questa architettura contiene tre livelli, ovvero Language API, Schema RDD e Data Sources.
Language API- Spark è compatibile con diversi linguaggi e Spark SQL. È anche supportato da questi linguaggi: API (python, scala, java, HiveQL).
Schema RDD- Spark Core è progettato con una struttura dati speciale chiamata RDD. In genere, Spark SQL funziona su schemi, tabelle e record. Pertanto, possiamo usare lo Schema RDD come tabella temporanea. Possiamo chiamare questo schema RDD come data frame.
Data Sources- Di solito l'origine dati per Spark-core è un file di testo, un file Avro, ecc. Tuttavia, le origini dati per Spark SQL sono diverse. Quelli sono file Parquet, documento JSON, tabelle HIVE e database Cassandra.
Discuteremo di più su questi nei capitoli successivi.