¿Cuál es la arquitectura de Apache Spark SQL? ¿Cómo se ejecutan las consultas Spark SQL en el fondo de SchemaRDD?

Introducción

Spark SQL integra el procesamiento relacional con la programación funcional de Sparks. Es el módulo Spark para el procesamiento de datos estructurados. Spark SQL difumina la línea entre RDD y la tabla relacional. Ofrece una integración mucho más estricta entre el procesamiento relacional y procesal, a través de API declarativas de marcos de datos que se integran con el código Spark. También proporciona una mayor optimización. DataFrame API y Datasets API son las formas de interactuar con Spark SQL. Con Spark, SQL Apache Spark es accesible para más usuarios y mejora la optimización para los usuarios actuales.

Spark SQL se ejecuta sobre Spark Core. Spark SQL permite a los desarrolladores importar datos relacionales de tablas Hive y archivos de parquet, ejecutar consultas SQL sobre datos importados y RDD existentes y escribir fácilmente RDD en tablas Hive o archivos Parquet. Como Spark SQL proporciona API de marco de datos que realiza operaciones relacionales tanto en fuentes de datos externas como en Sparks integrados en colecciones distribuidas. Spark SQL presenta un optimizador extensible llamado Catalyst, ya que ayuda a admitir una amplia gama de fuentes de datos y algoritmos en Big-data.

Interfaces de Spark SQL

Marco de datos

El marco de datos de Spark se evalúa perezosamente como Transformaciones en Apache Spark. Un marco de datos es equivalente a una tabla relacional en Spark SQL. Un marco de datos se utiliza para almacenar datos en tablas. Es similar / idéntico a una tabla en una base de datos relacional pero con una optimización más rica. Es una abstracción de datos y un lenguaje específico de dominio (DSL) aplicable a datos estructurados y semiestructurados. Se distribuye la recopilación de datos en forma de columna y fila con nombre. Para acceder a los marcos de datos, se necesita el contexto SQL o el contexto Hive.

SQLContext

Es el punto de entrada para trabajar a lo largo de datos estructurados (filas y columnas) en Spark.

Sigue leyendo..