¿Qué es Spark SQL en Apache Spark?

Autor: | Última modificación: 13 de junio de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

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, 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.

Spark SQL: Base Project

Para empezar un proyecto de Spark, 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 Spark.

Desde este punto podrás ejecutar en el play del IDE y ejecutar Spark 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.

¿Qué es Spark SQL en Apache Spark? 1

SparkSQL: Apache Avro

Spark SQL en Apache Spark 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.

¿Qué es Spark SQL en Apache Spark? 2

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

¿Qué es Spark SQL en Apache Spark? 3


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.
  • 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!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Sabías que hay más de 5.000 vacantes para desarrolladores de Big Data sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!