0:005:33

Recursos

Resumen

Las acciones en Apache Spark son operaciones que se aplican sobre los RDD y se ejecutan de forma inmediata, disparando todas las transformaciones asociadas. Si trabajas con procesamiento de datos distribuido, entender la diferencia entre acciones y transformaciones es la base para usar Spark con criterio.

Y aquí viene el matiz clave: mientras las transformaciones devuelven otro RDD transformado, las acciones nunca modifican ni transforman un RDD. Las acciones son tu manera de interactuar con esos objetos para mostrar contenido o hacer conteos, pero la esencia del RDD queda intacta.

¿Qué diferencia una acción de una transformación en Spark?

La distinción es más sencilla de lo que parece. Las transformaciones construyen nuevos RDD, pero no ejecutan nada por sí solas. La acción es la que dispara el trabajo real.

Cuando aplicas una acción sobre un RDD, Spark ejecuta automáticamente todas las transformaciones que estaban en espera [00:12]. Por eso decimos que las acciones se ejecutan de forma inmediata: son el gatillo de todo el flujo.

¿Las acciones modifican un RDD? No. Las acciones nunca alteran ni transforman un RDD. Solo interactúan con él para mostrar su contenido, contar elementos o devolver valores. Cualquier modificación pertenece siempre a las transformaciones.

Piensa en esto como consultar un objeto sin tocarlo. Si pides el primer elemento o el conteo total, el RDD sigue valiendo exactamente lo mismo que antes.

¿Cómo funcionan count, first y take sobre un RDD?

Estas tres acciones son las más intuitivas para empezar. Todas se aplican sobre un mismo objeto y devuelven información sin cambiarlo.

¿Qué hace la función count en Spark?

La acción count cuenta el número de elementos que tienes en un RDD [01:00]. En el ejemplo, se paraleliza un objeto, se guarda en una variable llamada num y al aplicar count el resultado indica que ese RDD tiene 10 elementos.

¿Qué devuelve count en un RDD? Devuelve la cantidad total de elementos que contiene el RDD. Si paralelizas una lista del 1 al 10, num.count() te retorna 10.

La función first es igual de directa: retorna el primer elemento del RDD [01:40]. Al hacer num.first, obtienes el 1, porque es el primer valor del objeto creado. Y recuerda: num sigue conservando todos sus valores originales.

¿Para qué sirve la acción take?

La acción take devuelve el número de elementos que tú especifiques [02:20]. Si llamas a take pidiendo los primeros tres elementos, te retorna 1, 2 y 3. Como siempre, se aplica sobre num, así que extrae esos primeros valores de ese mismo RDD.

¿Qué es collect y qué otras acciones existen en Spark?

La acción collect es una de las más usadas a lo largo del trabajo con notebooks [03:00]. Devuelve todos los valores asociados al RDD, es decir, te muestra su contenido completo.

Aplicar collect sobre num te da como resultado la lista entera de valores del RDD. Es la forma habitual de inspeccionar lo que contiene un objeto distribuido.

Pero el abanico de acciones es mucho más amplio. Estas son algunas que vale la pena conocer:

  • countByKey: pertenece a la familia de count y realiza un conteo en función de una clave.
  • takeSample: toma una muestra de elementos del RDD.
  • Acciones de ordenamiento para organizar los datos.
  • Acciones de guardado, como exportar un RDD a un text file o guardarlo como objetos.

Después de dominar estas operaciones, el siguiente paso es ponerlas a prueba con datos propios.

¿Cómo practicar transformaciones y acciones sobre RDD?

La mejor manera de interiorizar estos conceptos es replicarlos en tu propio entorno de Databricks [03:40]. En los recursos encontrarás un reto diseñado para combinar transformaciones y acciones.

El reto se divide en cinco ejercicios encadenados:

  1. Crear un RDD a partir de una lista del número 1 al 10.
  2. Filtrar los elementos pares del RDD creado en el ejercicio uno.
  3. Encontrar el valor máximo y mínimo de los RDD.
  4. Calcular el promedio de los números del RDD.
  5. Hacer un union de los RDD y obtener el resultado.

En todos los casos usas el RDD del ejercicio uno, y parte del aprendizaje consiste en investigar conceptos que no se abordaron en detalle. Hay una solución compartida en los recursos, pero resuelve primero por tu cuenta y luego compara.

¿Qué acción de Spark te resulta más útil en tu día a día? Cuéntalo en los comentarios.

Count, first y take: acciones clave en Spark