Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-201

Scala funcional y para ingeniería de datos

Colecciones inmutables, tipos algebraicos y el papel de Scala en el ecosistema Spark de procesamiento distribuido.

Bajo demanda Avanzado 8 módulos · 39 clases

Formato asíncrono Desarrollo, Ingeniería / Industria Scala, Spark

Lo que aprenderás

  • Diseñar el dominio con tipos algebraicos y typeclasses que impidan representaciones inválidas.
  • Componer efectos y validaciones encadenando Either, Validated y comprensiones for.
  • Escribir transformaciones con la API de Dataset de Spark aprovechando la comprobación de tipos.
  • Interpretar el plan físico de una consulta Spark y detectar barajados innecesarios.
  • Definir codificadores y funciones de agregación propias para tipos del dominio.
  • Probar trabajos de Spark con conjuntos de datos reducidos y comprobaciones deterministas.

Contenido del curso

8 módulos · 39 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y entorno 4 clases
  • Qué papel juega Scala en el ecosistema de datos
  • Proyecto sbt con dependencias de Spark
  • Sesión de Spark local y cuaderno de pruebas
  • Cómo se mide un trabajo a lo largo del curso
Módulo 2 · Modelado funcional del dominio 5 clases
  • Tipos algebraicos y estados imposibles
  • Tipos opacos y de valor
  • Typeclasses y resolución de instancias
  • Parámetros dados y contexto
  • Igualdad y ordenación definidas por el dominio
Módulo 3 · Composición y errores 5 clases
  • Encadenar con map y flatMap
  • Comprensiones for sobre varios efectos
  • Validación acumulativa frente a cortocircuito
  • Separar decisión de efecto
  • Funciones puras y comprobación por propiedades
Módulo 4 · Colecciones y rendimiento en Scala 5 clases
  • List, Vector y Array: coste de cada operación
  • Vistas y evaluación perezosa
  • Estructuras persistentes y compartición
  • Iteradores para grandes volúmenes
  • Cuándo la inmutabilidad cuesta memoria
Módulo 5 · Spark con Dataset 5 clases
  • RDD, DataFrame y Dataset: diferencias reales
  • Codificadores y comprobación de tipos
  • Transformaciones y acciones
  • Uniones y estrategias de ejecución
  • Funciones definidas por el usuario y su coste
Módulo 6 · Ejecución y ajuste 5 clases
  • Leer el plan lógico y el plan físico
  • Particiones, barajados y sesgo de datos
  • Difusión de tablas pequeñas
  • Persistencia en memoria y en disco
  • Formatos columnares y lectura selectiva
Módulo 7 · Calidad y pruebas 5 clases
  • Pruebas de transformaciones con datos reducidos
  • Determinismo y control de la aleatoriedad
  • Comprobaciones de esquema y de calidad de datos
  • Registro y trazabilidad de un trabajo
  • Empaquetado y envío del trabajo
Módulo 8 · Caso práctico: proceso de datos de extremo a extremo 5 clases
  • Modelo de dominio y esquema de entrada
  • Ingesta, validación y separación de registros erróneos
  • Agregaciones con funciones propias
  • Ajuste tras leer el plan de ejecución
  • Entrega: trabajo empaquetado con pruebas y mediciones

Requisitos

  • Scala a nivel intermedio: case classes, traits, colecciones inmutables, Option y Either.
  • JDK 11 o 17, sbt y una instalación local de Spark o un entorno con Spark disponible.
  • Conocimientos de SQL y de modelos de datos tabulares.

Descripción

En ingeniería de datos, la diferencia entre un proceso que se mantiene y otro que hay que rehacer cada trimestre suele estar en el modelado: columnas sin tipo, valores nulos con significados distintos y transformaciones encadenadas que nadie puede leer. Scala permite trasladar buena parte de esas reglas al sistema de tipos, y Spark permite aprovecharlo si se usa la API adecuada.

El curso combina las dos caras. Primero afianza el estilo funcional en Scala: tipos algebraicos, typeclasses, composición de validaciones y colecciones inmutables. Después lleva ese modelado a Spark trabajando con Dataset en lugar de DataFrame sin tipo, leyendo planes de ejecución, midiendo el efecto de particiones y barajados y escribiendo agregaciones propias sobre tipos del dominio.

Al terminar se puede diseñar un proceso de datos comprensible, probado y con un coste de ejecución justificado. Es la preparación para trabajar en plataformas de datos con Spark, tanto en lotes como en flujo continuo, y para participar en decisiones de arquitectura donde el modelo de datos condiciona todo lo que viene después.

¿Para quién es este curso?

  • Ingeniería de datos que mantiene procesos Spark y necesita hacerlos comprensibles y comprobables.
  • Desarrolladores Scala que entran en un equipo de plataforma de datos.
  • Arquitectos que deciden el modelo de datos de un proceso distribuido y su coste de ejecución.
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
LNG-201
Nivel
Avanzado
Público
Desarrollo, Ingeniería / Industria
Entorno
Scala, Spark

Este curso incluye

  • 39 clases en vídeo bajo demanda
  • Práctica en entornos web y simuladores, sin instalar nada
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-106Lenguajes y Fundamentos de Programación

Concurrencia: multihilo y multiproceso

Paralelizar adquisición de datos y tareas de E/S sin introducir errores difíciles de reproducir.

Python

Avanzado 33 clases

PY-107Lenguajes y Fundamentos de Programación

Testing y TDD en Python

Pruebas unitarias, fixtures y desarrollo dirigido por pruebas en proyectos técnicos reales.

Python

Avanzado 34 clases

PY-131Lenguajes y Fundamentos de Programación

Webscraping con agentes de IA en local

Agentes que navegan y extraen datos sin depender de servicios en la nube.

PythonOllama

Avanzado 34 clases