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.