0Pricing
Scala for Backend Engineering & Functional Programming · Lección

RDDs y DataFrames

Abstracciones de datos de Spark

RDDs y DataFrames es una lección gratuita de Scala for Backend Engineering & Functional Programming en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Scala for Backend Engineering & Functional Programming, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Scala for Backend Engineering & Functional Programming incluye 4 lecciones en total.

¿Qué es Apache Spark?

Apache Spark es un motor distribuido para procesar datos a gran escala. Divide los datos entre un clúster y ejecuta los cálculos en paralelo. Scala es el lenguaje nativo de Spark, lo que proporciona una API concisa y consciente de los tipos.

El RDD

El Resilient Distributed Dataset (RDD) es la abstracción de bajo nivel de Spark: una colección inmutable y particionada que puede procesarse en paralelo y reconstruirse a partir de su linaje si falla un nodo.

SparkContext y SparkSession

Se accede a Spark mediante una SparkSession. Su sparkContext crea RDD; la propia sesión crea DataFrames y ejecuta SQL.

import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder()
  .appName("Demo")
  .master("local[*]")
  .getOrCreate()

Creación de un RDD

Cree un RDD paralelizando una colección local o leyendo un archivo. Cada partición es procesada por una tarea independiente.

val sc = spark.sparkContext
val numbers = sc.parallelize(Seq(1, 2, 3, 4, 5))
val lines   = sc.textFile("data.txt")

El DataFrame

Un DataFrame es una tabla distribuida con columnas con nombre y tipo, similar a un RDD de filas más un esquema. El optimizador Catalyst puede planificar y optimizar las consultas de DataFrame.

Creación de un DataFrame

Cree DataFrames a partir de colecciones (con toDF) o leyendo archivos estructurados como CSV, JSON o Parquet.

import spark.implicits._

val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
val csv = spark.read.option("header", "true").csv("people.csv")

Inspección de un DataFrame

Use show para imprimir filas, printSchema para ver los tipos de las columnas y count para obtener el número de filas.

df.printSchema()
df.show()
println(df.count())

Datasets y seguridad de tipos

Un Dataset es un DataFrame tipado: Dataset[T], donde T es una case class. Combina la optimización de DataFrame con comprobaciones de tipos en tiempo de compilación.

import spark.implicits._

case class Person(name: String, age: Int)
val ds = Seq(Person("Alice", 30)).toDS()

RDD frente a DataFrame y Dataset

Elija según sus necesidades:

  • RDD — control total, sin esquema ni optimizador
  • DataFrame — esquema y optimización de Catalyst, filas sin tipar
  • Dataset — esquema, optimización y seguridad de tipos

Conversión entre ellos

Convierta un DataFrame en un RDD con .rdd, o un RDD de case classes en un DataFrame con .toDF. Los Datasets también se convierten en DataFrames con .toDF.

val rdd = df.rdd          // DataFrame -> RDD[Row]
val back = ds.toDF()      // Dataset -> DataFrame

Colección básica de Scala

Conceptualmente, un DataFrame se comporta como una colección de Scala, pero distribuida. Este es el equivalente local y autónomo para facilitar la comprensión.

object Main {
  case class Person(name: String, age: Int)
  def main(args: Array[String]): Unit = {
    val people = Seq(Person("Alice", 30), Person("Bob", 25))
    people.foreach(p => println(s"${p.name}: ${p.age}"))
  }
}

Comprobación rápida

¿Qué abstracción proporciona un esquema, optimización de Catalyst y seguridad de tipos en tiempo de compilación?

Repaso

Ha conocido las abstracciones de datos de Spark:

  • SparkSession como punto de entrada
  • RDD — colección distribuida de bajo nivel
  • DataFrame — tabla distribuida con esquema
  • Dataset — DataFrame tipado

A continuación: transformaciones y acciones.

Preguntas frecuentes

¿La lección «RDDs y DataFrames» es gratis?

Sí — el texto completo de «RDDs y DataFrames» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Scala for Backend Engineering & Functional Programming, actualiza a CoddyKit PRO. El curso de Scala for Backend Engineering & Functional Programming incluye 4 lecciones en total.

¿Qué aprenderé en «RDDs y DataFrames»?

Abstracciones de datos de Spark Practicas Scala for Backend Engineering & Functional Programming con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Scala for Backend Engineering & Functional Programming?

No se requiere experiencia previa. Scala for Backend Engineering & Functional Programming en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «RDDs y DataFrames»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Scala for Backend Engineering & Functional Programming?

Sí. Cada lección de Scala for Backend Engineering & Functional Programming incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. RDDs y DataFrames
  2. Transformaciones y acciones
  3. Spark SQL
  4. Agregaciones
← Volver a Scala for Backend Engineering & Functional Programming