Spark SQL - Introducción
Spark presenta un módulo de programación para el procesamiento de datos estructurados llamado Spark SQL. Proporciona una abstracción de programación llamada DataFrame y puede actuar como motor de consultas SQL distribuido.
Características de Spark SQL
Las siguientes son las características de Spark SQL:
Integrated- Mezcle sin problemas consultas SQL con programas Spark. Spark SQL le permite consultar datos estructurados como un conjunto de datos distribuidos (RDD) en Spark, con API integradas en Python, Scala y Java. Esta estrecha integración facilita la ejecución de consultas SQL junto con complejos algoritmos analíticos.
Unified Data Access- Cargue y consulte datos de una variedad de fuentes. Los Schema-RDD proporcionan una interfaz única para trabajar de manera eficiente con datos estructurados, incluidas tablas Apache Hive, archivos parquet y archivos JSON.
Hive Compatibility- Ejecute consultas de Hive sin modificar en almacenes existentes. Spark SQL reutiliza la interfaz de Hive y MetaStore, lo que le brinda compatibilidad total con los datos, consultas y UDF de Hive existentes. Simplemente instálelo junto con Hive.
Standard Connectivity- Conéctese a través de JDBC u ODBC. Spark SQL incluye un modo de servidor con conectividad JDBC y ODBC estándar de la industria.
Scalability- Utilice el mismo motor para consultas interactivas y largas. Spark SQL aprovecha el modelo RDD para admitir la tolerancia a fallas a mitad de la consulta, lo que le permite escalar también a trabajos grandes. No se preocupe por utilizar un motor diferente para los datos históricos.
Arquitectura Spark SQL
La siguiente ilustración explica la arquitectura de Spark SQL:
Esta arquitectura contiene tres capas, a saber, API de lenguaje, RDD de esquema y Fuentes de datos.
Language API- Spark es compatible con diferentes lenguajes y Spark SQL. También es compatible con estos lenguajes: API (python, scala, java, HiveQL).
Schema RDD- Spark Core está diseñado con una estructura de datos especial llamada RDD. Generalmente, Spark SQL funciona en esquemas, tablas y registros. Por lo tanto, podemos usar Schema RDD como tabla temporal. Podemos llamar a este esquema RDD como marco de datos.
Data Sources- Por lo general, la fuente de datos para Spark-core es un archivo de texto, un archivo Avro, etc. Sin embargo, las fuentes de datos para Spark SQL son diferentes. Esos son el archivo Parquet, el documento JSON, las tablas HIVE y la base de datos Cassandra.
Discutiremos más sobre estos en los capítulos siguientes.