Blog | Data Analytics | Data Engineering

¿Qué es Apache Spark y cómo funciona?

Apache Spark es un tipo de tecnología que utiliza sistemas distribuidos. En este artículo explicamos qué es, cuáles son los conceptos clave a tener en cuenta y te orientamos a empezar a usarlo de forma sencilla.

¿Qué es Apache Spark?

Apache Spark es una tecnología que utiliza procesamiento distribuido, lo cual garantiza la posibilidad de escalar y de almacenar volúmenes casi infinitos de datos a una forma costo-efectiva.

Los sistemas distribuidos son un conjunto de computadoras o servidores que trabajan de forma coordinada como si fueran una sola. Podríamos pensarlos como si fueran una orquesta en la cual hay diferentes instrumentos que suenan de forma armónica como un todo.

En este artículo explicamos en detalle cómo funcionan los sistemas distribuidos.

Conceptos clave para entender cómo funciona Apache Spark

Antes de avanzar con el tema, es importante conocer cuáles son los conceptos clave para entender y poder trabajar con Apache Spark:

  • Driver: Es el responsable de coordinar todo el trabajo. Es importante tener en cuenta que el driver no toca los datos, solo da las instrucciones y luego obtiene resultados.
  • Ejecutores: Es el espacio de trabajo. Se trata de las máquinas virtuales en las que se ejecuta el código y se realizan todas las operaciones.
  • Cluster: Es un conjunto de máquinas virtuales, se compone de un driver y de varios ejecutores. Técnicamente está formado por nodos.
  • Nodos: Son máquinas físicas o virtuales que, en conjunto, dan forma al cluster. Dentro de los nodos se encuentran los slots que son la porción de cómputo de cada nodo ejecutor. Los slots son los encargados de ejecutar las tareas asignadas por el driver y representan la mínima unidad disponible para la paralelización. En un nodo puede haber varios slots, la cantidad la podemos configurar según la necesidad.
  • Recursos: Siempre son compartidos (RAM, disco, network) por todos los slots.
  • Paralelización: Es la manera de ejecutar las tareas. En lugar de hacerlo en secuencia, se ejecutan al mismo tiempo en diferentes nodos para acelerar el procesamiento.

¿Cómo funciona Apache Spark?

Apache Spark permite separar las tareas en múltiples partes. Vamos a explicarlo a partir de un ejemplo para que se entienda mejor. Supongamos que tenemos un salón de clase en el cual hay un docente y varios alumnos. El docente tiene una bolsa con varios paquetes de dulces confitados M&M de diferentes colores. Le entrega a cada alumno un paquete y les pide que separen los de color celeste.

Ahora llevemos esto al mundo de los datos. Partimos de un dataset (los M&M). El driver (el docente) define cómo se van a organizar los datos y los divide en particiones, una vez que las crea, asigna tareas a cada una (los alumnos). Recordemos que el driver no toca los datos.

Cómo funciona Apache Spark (driver, cluster, ejecutores)
Cómo funciona Apache Spark (driver, cluster, ejecutores).

En este punto aparece un nuevo concepto que es el de jobs en una aplicación de Apache Spark. El job es la instrucción que le damos, puede ser, por ejemplo, filtrar. La aplicación sería el código —en SQL, en Python, en Scala, en R, etc.— y el driver decide cuántos jobs necesita para la ejecución de esa aplicación.

Dentro de cada job habrá diferentes tareas. Los stages son las etapas en la que se divide un job. Cuando las instrucciones son complejas se dividen un mayor número de tares, estas se agrupan en etapas que forman parte de un job.

Las tareas complejas se dividen en bloques más pequeños para ir resolviéndolos, como explicamos en la siguiente imagen:

Ejecución en Apache Spark
Ejecución en Apache Spark

En caso que necesitemos agregar/reducir más paralelismo, podemos agregar (o quitar) más ejecutores (máquinas).

Ejemplos de aplicaciones que usan Apache Spark

Todos los días usamos aplicaciones cuyos algoritmos corren sobre Apache Spark. Algunos de los ejemplos más comunes son:

  • Los sistemas de recomendación de series o películas de Netflix.
  • El Descubrimiento Semanal de Spotify.
  • Cuando entramos a Airbnb y sugiere “mejores precios” en cierta locación que nos interese visitar.

¿Cómo empezar a usar Apache Spark?

Sabemos que empezar con Apache Spark puede ser complicado, sin embargo, hoy existen formas mucho más sencillas para hacerlo.

La manera más fácil — y la que recomendamos para comenzar— es abrir una cuenta gratuita en Databricks Community donde podrán acceder a todo el front-end de Databricks que facilitó muchos servicios que antes era complejos.

Una vez allí, seleccionan la máquina. Tengamos en cuenta que la versión gratuita tiene ciertas limitaciones, pero para practicar es más que suficiente.

Databricks es una plataforma como servicio (PaaS) y eso hace que sea mucho más fácil implementar Apache Spark, además corre en las tres principales nubes del mercado (Azure, AWS y GCP). Las formas de usarlo son muchas, todo dependerá del escenario al cual nos enfrentemos. Lo bueno es que en la nube hay opciones para todos los gustos.

¿Cómo aprender más sobre Apache Spark?

Recomendamos dos maneras, todo dependerá del perfil de la persona y de la profundidad técnica que necesite alcanzar:

  • Usar la versión comunitaria de Databricks. Como explicamos más arriba, esto nos da la posibilidad de levantar un cluster chico para empezar a practicar. Desde esta perspectiva, aprenderemos a usar Apache Spark desde una mirada 100% de ingeniería de datos. Nos enfocamos en qué tenemos que hacer y cuáles son las formas de hacerlo, de esta manera, evitamos toda la complejidad asociada a la arquitectura.
  • Apache Spark stand alone: Si les interesa más los aspectos técnicos, pueden descargar Apache Spark y hacer una instalación stand alone. Esto significa, que podemos instalar nuestra propia máquina y hacer que todo corra en nuestro entorno local. Tengamos en cuenta que esta opción es un poco más compleja.

Conclusión

Apache Spark no solo es una herramienta poderosa para el procesamiento distribuido de datos, sino que también es accesible para principiantes y expertos por igual.

Gracias a su capacidad de escalar y dividir tareas en paralelo, permite manejar grandes volúmenes de información de manera eficiente y costo-efectiva. Ya sea a través de plataformas intuitivas como Databricks o de instalaciones independientes más técnicas, Apache Spark ofrece flexibilidad para adaptarse a diferentes necesidades y niveles de experiencia.

En un mundo impulsado por datos, aprender a usar Apache Spark puede ser un paso clave para optimizar proyectos y abordar desafíos complejos en el ámbito de Data & AI.


* Este contenido fue publicado originalmente en Datalytics.com. Datalytics y Lovelytics se fusionaron en enero de 2025.

Author

Artículos relacionados

Nov 19 2025

Por qué el equipo de LATAM elige trabajar en Lovelytics

El equipo de Lovelytics LATAM está formado por personas de distintos países, culturas y zonas horarias que —desde Cali hasta la Patagonia— trabajan en equipo para...
Sep 04 2025

Databricks reconoce a Lovelytics LATAM como el partner del año en Unity Catalog

En la edición 2025 del LATAM Partner Forum celebrado en Brasil, Databricks reconoció a Lovelytics LATAM como el partner del año en la categoría Unity Catalog....
Ago 26 2025

Nueva marca, a partir de hoy somos Lovelytics LATAM

Hoy cambiamos el nombre de nuestra marca. Desde ahora somos Lovelytics LATAM.  Oficializamos el cambio que anticipamos en enero después de meses de...
Jun 24 2025

¿Qué es y cómo usar AI/BI Genie de Databricks?

AI/BI Genie es un agente que nos permite conversar con los datos. En este artículo explicamos qué desafíos resuelve, cuánto cuesta y explicamos cómo usarla a partir de...
May 07 2025

¿Qué es AI/BI Dashboard de Databricks?

En este artículo explicamos qué es AI/BI Dashboard de Databricks, para qué tipo de perfiles está pensada, en qué circunstancias conviene usarla y cuándo es recomendable...
Dic 06 2024

¿Qué es Staff Augmentation?

En este artículo explicamos qué es el Staff Augmentation de equipos de datos, qué problemas viene a resolver y cuáles son sus principales beneficios. ¿Qué problemas...
Nov 26 2024

Ingeniería de datos: ¿Cómo hacer un plan de pruebas?

En este artículo explicamos cómo hacer un plan de pruebas mínimo en ingeniería de datos. Hablamos de la importancia de asegurar la calidad de los procesos con un plan...
Nov 14 2024

Arquitectura de datos moderna con AWS, ¿Cómo construirla?

En este artículo explicamos cómo construir una arquitectura de datos moderna con AWS. Además, describimos cómo es el ecosistema de servicios que ofrece para los...
Oct 07 2024

¿Qué es un data lakehouse?

En este artículo explicamos qué es un data lakehouse, qué problemas viene a resolver y cuáles son sus principales características. Además, desarrollamos el concepto de...
Sep 25 2024

¿Qué es un data lake?

En este artículo desarrollamos en detalle qué es un data lake, cuáles son sus ventajas y sus desventajas. Además, explicamos cómo se componen este tipo de arquitecturas...