Spark SQL - Introduction

Spark introduit un module de programmation pour le traitement de données structurées appelé Spark SQL. Il fournit une abstraction de programmation appelée DataFrame et peut servir de moteur de requête SQL distribué.

Fonctionnalités de Spark SQL

Voici les fonctionnalités de Spark SQL -

  • Integrated- Mélangez de manière transparente les requêtes SQL avec les programmes Spark. Spark SQL vous permet d'interroger des données structurées en tant qu'ensemble de données distribué (RDD) dans Spark, avec des API intégrées en Python, Scala et Java. Cette intégration étroite facilite l'exécution de requêtes SQL parallèlement à des algorithmes analytiques complexes.

  • Unified Data Access- Charger et interroger des données à partir de diverses sources. Schema-RDDs fournit une interface unique pour travailler efficacement avec des données structurées, y compris des tables Apache Hive, des fichiers parquet et des fichiers JSON.

  • Hive Compatibility- Exécutez des requêtes Hive non modifiées sur les entrepôts existants. Spark SQL réutilise le frontend Hive et MetaStore, vous offrant une compatibilité totale avec les données, requêtes et UDF Hive existantes. Installez-le simplement avec Hive.

  • Standard Connectivity- Connectez-vous via JDBC ou ODBC. Spark SQL comprend un mode serveur avec une connectivité JDBC et ODBC standard.

  • Scalability- Utilisez le même moteur pour les requêtes interactives et longues. Spark SQL tire parti du modèle RDD pour prendre en charge la tolérance aux pannes au milieu des requêtes, ce qui lui permet également de s'adapter à de gros travaux. Ne vous inquiétez pas d'utiliser un moteur différent pour les données historiques.

Architecture Spark SQL

L'illustration suivante explique l'architecture de Spark SQL -

Cette architecture contient trois couches à savoir, l'API de langage, le schéma RDD et les sources de données.

  • Language API- Spark est compatible avec différents langages et Spark SQL. Il est également pris en charge par ces langages - API (python, scala, java, HiveQL).

  • Schema RDD- Spark Core est conçu avec une structure de données spéciale appelée RDD. Généralement, Spark SQL fonctionne sur les schémas, les tables et les enregistrements. Par conséquent, nous pouvons utiliser le schéma RDD comme table temporaire. Nous pouvons appeler ce schéma RDD comme trame de données.

  • Data Sources- Habituellement, la source de données pour spark-core est un fichier texte, un fichier Avro, etc. Cependant, les sources de données pour Spark SQL sont différentes. Ce sont le fichier Parquet, le document JSON, les tables HIVE et la base de données Cassandra.

Nous en discuterons plus en détail dans les chapitres suivants.