¿Qué es Spark SQL en Apache Spark?

| Última modificación: 31 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

El proceso de Spark SQL en Apache Spark se ha instaurado como una ventaja para el desarrollo de un estudio de macrodatos efectivo por medio de este sistema de computación y sus servicios.

Es por ello que, en este artículo, te ponemos al tanto de qué es Spark SQL en Apache Spark, de manera que puedas emplearlo en tu procesamiento de datos.

¿Qué es Spark SQL en Apache Spark?

Spark SQL en Apache Spark es uno de los módulos para el procesamiento de la información que ofrece Apache Spark y que trabaja con datos estructurados.

Spark SQL en Apache Spark cuenta con las interfaces que proporcionan mayor información sobre la estructura y la computación de los datos que la API de Spark RDD.
Por otra parte, existen varias formas para trabajar con Spark SQL:

  • Dataframe: es el conjunto de datos organizados en columnas del Spark SQL, también es equivalente a
    una tabla relacional. Estos pueden construirse desde ficheros estructurados, tablas
    en Hive, base de datos externas o RRDs existentes. Por último, trabaja lenguajes como Scala, Java, Python o R.
  • Dataset: con conjunto de datos distribuidos, este permite usar Spark SQL en Apache Spark con los beneficios de los RDDs: tipado fuerte, transformaciones funcionales, etc. Trabaja con los lenguajes Scala y Java.
  • SQL: este se emplea con un lenguaje con sintaxis SQL y Spark SQL.

Spark SQL: Base Project

Para empezar un proyecto de Spark SQL, necesitas añadir las dependencias en tu proyecto de sbt en el IDE.

libraryDependencies ++= Seq(
“org.apache.spark” %% “spark-core” % “3.0.1”,
“org.apache.spark” %% “spark-sql” % “3.0.1”
)

Una vez cuentes con las dependencias, podrás crear un objeto principal con un método main,
donde crearás un nuevo contexto de SparkSQL.

Desde este punto podrás ejecutar en el play del IDE y ejecutar SparkSQL en modo local, usando la CPU de la máquina.

Para el siguiente ejemplo usaremos una instancia de SparkSession en lugar de SparkContext:

package io.keepcoding.spark.sql
import org.apache.spark.sql.SparkSession
object SparkSqlBaseProject {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName(“Spark SQL KeepCoding”)
.getOrCreate()
import spark.implicits._
//
spark.close()
}
}

SparkSQL: Apache Parquet

Dentro de Spark SQL en Apache Spark podrás hallar a Apache Parquet. Esta herramienta soporta de manera nativa la lectura y escritura en ficheros Parquet. Leyendo Parquet, las columnas se marcan como nullable por razones de compatibilidad.
Por otra parte, Apache Parquet permite la partición de datos para optimizar sus lecturas y los datos se almacenan en distintos directorios, codificando los valores en el nombre del directorio para cada partición del SparkSQL.

SparkSQL: Apache Avro

Spark SQL en Apache Spark.SQL necesita de una extensión para poder trabajar con Avro y poder hacer .format(“avro”).

libraryDependencies += “org.apache.spark”
%% “spark-avro” % “3.0.1”

Avro permite indicar el tema por medio de options a la hora de hacer los read/write, mediante la propiedad avroSchema.

Por otra parte, Avro también tiene tipos lógicos para soportar estructuras de datos más complejas.


Por último, el tipo unión en Avro se utiliza para indicar que un campo puede tener distintos valores de tipo. Spark.SQL realiza las siguientes traducciones:

  • Unión (int, long) a LongType.
  • Unión(float, double) a DoubleType.
  • Unión (any, null) a Nullable con Spark.SQL.
  • Si la unión es de dos tipos distintos, son consideradas complejas y se traducen en una estructura con distintos miembros, así: union(int, string) à member0 (int), member1 (string).

Conoce más del Big Data con KeepCoding

Por medio de este post, has podido identificar qué es Spark SQL en Apache Spark. No obstante, esto exige continuar practicando para ganar experiencia. Si no tienes claro cómo puedes empezar, ¡en KeepCoding te ofrecemos la mejor opción!

Nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning cuenta con once módulos que te prepararán y pondrán a prueba tus destrezas con las principales herramientas desarrolladas para el procesamiento de los macrodatos. Para ello, también contarás con el apoyo de una serie de expertos en Big Data que te guiarán en los procesos tanto teóricos como prácticos. ¡No esperes más e inscríbete ahora!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado