Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de Spark

DISPONIBLE EN MODALIDAD:

Apache Spark es un framework de computación en clúster de código abierto, orientado al procesamiento de datos en tiempo real, que provee de una interfaz para programar clústers con paralelismo de datos implícito y tolerancia a fallos y actualmente es el proyecto de Apache más activo.

En este curso aprenderás a utilizar Spark desde la base para operar sobre datos, conocerás qué son los clusters y cómo trabajar con ellos, qué es el machine learning y a desplegar aplicaciones.

iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en Spark bonificable para empresas

¿A quién va dirigido?

A todos aquellos desarrolladores que quieran aprender la tecnología de procesamiento de datos en memoria más puntera del mercado.

Objetivos

  • Aprender a utilizar Scala y Python con el framework Spark 3x a través de Databricks y localmente
  • Aprender los fundamentos de Spark y crear RDDs, DataFrames y DataSets
  • Aprender a gestionar, preparar y organizar datos, además de entender el ciclo de vida del dato
  • Aprender a crear, entrenar y evaluar modelos de ML con Spark
  • Aprender a detectar problemas y aplicar buenas prácticas en la gestión de los datos

¿Qué vas a aprender?

Apache Spark es un framework de computación en clúster de código abierto, orientado al procesamiento de datos en tiempo real, que provee de una interfaz para programar clústers con paralelismo de datos implícito y tolerancia a fallos y actualmente es el proyecto de Apache más activo. En este curso aprenderás a utilizar Spark desde la base para operar sobre datos, conocerás qué son los clusters y cómo trabajar con ellos, qué es el machine learning y a desplegar aplicaciones.

Requisitos

  • Tener experiencia desarrollando con Scala o Python y haber realzado consultas SQL
  • Son necesarios permisos de instalación en el equipo en el que se realice la formación
  • Tener acceso (revisar configuraciones proxy en caso de tenerlas) a una cuenta Community de Azure Databricks para realizar los laboraorios de Spark
  • Tener Scala, Python 3 y Git instalados previamente para reproducir ejemplos localmente

Temario del curso

tema 1

Introducción

  • El problema del Big Data
  • ¿Qué es Spark?
  • Usos de Spark en el mundo real
  • Configurando nuestro IDE: IntelliJ IDEA
  • ¿Qué es Hadoop?
  • HDFS
  • Principales comandos de HDFS
  • Introducción a Yarn
  • Instalación de Hadoop
  • ¿Qué es HBase?
  • Instalación de Spark local
  • Arquitectura
  • Componentes
  • Ejecutando la consola interactiva de Spark
  • Ejercicio de iniciación
  • Recomendaciones
tema 2

Fundamentos de Spark

  • Arquitectura de una aplicación Spark
  • Introducción a las APIs de Spark
  • Iniciando Spark
  • SparkSession
  • Introducción a los Dataframes
  • Introducción a las particiones
  • Introducción a las transformaciones
  • Ejecución de la aplicación
  • Ciclo de vida fuera de las aplicaciones
  • Peticiones
  • Lanzamiento
  • Ejecución
  • Finalización
  • Ciclo de vida dentro de las aplicaciones
  • Instrucciones lógicas
  • Job de Spark
  • Stages
  • Task
tema 3

Herramientas de Spark

  • Transmisión estructurada
  • Ejecución de aplicaciones en producción
  • Datasets
  • APIs de bajo nivel
  • Ecosistema y paquetes de Spark
  • SparkR (Solo con R)
tema 4

DataFrames, SQL y DataSets

  • DataFrames
  • DataSets
  • DataFrames vs DataSets
  • Esquemas
  • Columnas y filas
  • Tipos en Spark
  • Planificación lógica
  • Planificación física
  • Ejecución
tema 5

Operaciones estructuradas

  • Operaciones sobre esquemas
  • Columnas y expresiones
  • Creación de filas
  • Creación de DataFrames
  • Selección con "select" y "selectExpr"
  • Conversión de tipos
  • Añadir columnas
  • Renombrado de columnas
  • "Casteo" del tipo de las columnas
  • Obtención de filas
  • Filtrado de filas
  • Muestreo aleatorio
  • Divisiones aleatorias
  • Uniones de filas
  • Aplicando límites
  • Ordenación de filas
  • Repartición y unión
tema 6

Trabajo con tipos distintos de datos

  • Conversión a tipos de Spark
  • Trabajando con números
  • Trabajando con cadenas de texto
  • Trabajando con expresiones regulares
  • Trabajando con fechas y horas
  • Trabajando con booleanos
  • Trabajando con datos nulos
  • Trabajando con arrays, maps, estructuras y otros datos complejos
  • Trabajando con JSON
  • Ordenación de datos
  • Uso de funciones definidas por el usuario
tema 7

Agregaciones y Uniones

  • Funciones de agregación disponibles en Spark
  • Agrupaciones con expresiones
  • Agrupaciones con maps
  • Agrupación de sets
  • Funciones ventana
  • Uso de funciones de agregación definidas por el usuario
  • Expresiones de unión (joins)
  • Tipos de Joins
  • ¿Cómo realiza Spark los joins?
tema 8

Orígenes de datos

  • Las bases de la API de lectura de datos
  • Las bases de la API de escritura de datos
  • Lectura y escritura de archivos CSV
  • Lectura y escritura de archivos JSON
  • Lectura y escritura de bases de datos SQL
  • Lectura y escritura de archivos ORC
  • Lectura y escritura de archivos TXT
tema 9

Apache Spark SQL

  • Introducción a Spark SQL
  • Introducción a Apache Hive y relación con Spark
  • Introducción a Spark SQL CLI
  • Introducción a Interfaz programática de SQL de Spark
  • Operaciones SQL
  • Opciones de Entrada/Salida
  • Catálogo
  • Introducción de las tablas de Spark SQL
  • Creación de tablas
  • Creación de tablas externas
  • Inserción de datos en tablas
  • Metadatos de tablas
  • Borrado de tablas
  • Cacheado de tablas
  • Introducción a las vistas de Spark SQL
  • Creación de vistas
  • Borrado de vistas
  • Introducción a las bases de datos de Spark SQL
  • Creación de bases de datos
  • Configuración de bases de datos
  • Borrado de bases de datos
  • Selects con "case", "when" y "then"
  • Funciones
  • Tipos complejos
  • Subqueries
  • Configuraciones generales
  • Establecimiento de valores de configuración en SQL
tema 10

DataSets

  • ¿Cuándo debemos usar Datasets?
  • Creación de DataSets
  • Acciones
  • Transformaciones, filtrado y mapeo
  • Joins de DataSets
  • Agrupaciones y agregaciones
tema 11

Resilient Distributed DataSets (RDDs)

  • Introducción a los RDD en Spark
  • Tipos de RDDs
  • ¿Cuándo es conveniente usar RDDs?
  • Ventajas de DataFrames vs RDD
  • Creación de un RDD
  • Interoperabilidad entre RDDs, DataSets y DataFrames
  • Creación de un RDD a partir de una colección local
  • Creación de un RDD de distintos orígenes
  • Manipulación de RDDs
  • Transformaciones
  • Acciones
  • Guardado en archivos de texto
  • Guardado en archivos Hadoop
  • Otros tipos de guardado
  • Cacheo de RDDs
  • Establecimiento de puntos de control
  • RDDs numérico
tema 12

RDD Clave-Valor

  • Introducción a los RDD Clave-Valor en Spark
  • Creación de RDD Clave-Valor
  • Introducción a las bases del uso de Clave-Valor
  • Filter
  • MapValue
  • Reduce By Key
  • Group By Key
  • Sort By Key
  • CoGrupos
  • Control de particionamiento de datos
  • Operaciones Join
  • Serialización personalizada
tema 13

GraphX (Solo con Scala)

  • Operadores GraphX
  • Usos reales de GraphX
  • Configuración y puesta en Marcha
  • Algoritmos de GraphX
  • Pregel API
  • GraphX builders
  • VertexRDD
  • EdgeRDD
  • Buenas Prácticas
tema 14

Variables compartidas distribuidas

  • Transmisión de variables
  • Acumuladores
  • Acumuladores personalizados
tema 15

Ejecuciones de Spark en un Cluster

  • Modos de ejecución
  • Introducción al ciclo de vida de una aplicación Spark desde fuera
  • Fase de petición de cliente
  • Fases de iniciación y ejecución
  • Fase de terminación
  • Introducción al ciclo de vida de una aplicación Spark desde dentro de Spark
  • La sesión de Spark
  • Las instrucciones lógicas
  • La Job de Spark
  • Las fases
  • Tareas
  • Detalles de ejecución
tema 16

Despliegue de aplicaciones Spark

  • Estructura de los proyectos
  • SBT (Solo con Scala)
  • ¿Dónde se pueden desplegar las aplicaciones de Spark?
  • Spark-Submit
  • On-premise Clusters vs Cloud
  • Empaquetado de aplicaciones
  • Introducción a los cluster managers
  • Modo Standalone
  • Spark con Yarn
  • Configuración de Spark con aplicaciones Yarn
  • Spark con Mesos
  • Configuraciones para desarrollo seguro
  • Configuraciones para redes de clusters
  • Estrategias de replicación
  • Recomendaciones
  • Creación de un cluster
  • Lanzamiento de trabajos
  • Monitorización de clusters
  • Particionamiento
  • Buenas prácticas
tema 17

Monitorización

  • Monitorización de Spark jobs
  • Interfaz Web de Spark
  • Jobs
  • Stages
  • Almacenamiento
  • SQL
  • Visualizando aplicaciones de Spark con Interfaces web
  • Los logs en las aplicaciones de Spark
  • log4j en Spark
tema 18

Mejoras del rendimiento

  • Técnicas de optimización
  • Uso y gestión de la memoria
  • Almacenamiento de datos en caché de memoria
  • Sugerencias combinadas para consultas SQL
  • Ejecución de consultas adaptables
tema 19

Testing y debugging

  • Entorno distribuido
  • Pruebas en un entorno distribuido
  • Problemas de un entorno distribuido
  • Testing en aplicaciones Spark
  • Tipos de test
  • Métodos de test en Spark
  • Debugging en aplicaciones Spark
tema 20

Introducción al Machine Learning con Spark

  • Introducción a MLlib
  • Fundamentos de MLlib
  • Estimadores
  • Entrenamiento y evaluación
  • Persistencia y aplicación de modelos
  • Creación de un sistema de MLlib
  • Regresión Lineal con MLlib
  • Árboles de decisión
  • Bosques aleatorios
  • Dataframes con MLlib
  • Métricas
tema 21

Detección de problemas

  • Planes de ejecución
  • Detectando un Shuffle en un procesamiento
  • Probando operaciones que puedan causar un Shuffle
  • Cambiando el diseño de trabajos con dependencias amplias
  • Usando operaciones keyBy para reducir los Shuffle
  • Usando particionadores personalizados
tema 22

Performance Tuning

  • Serialización de objetos en RDD
  • Configuraciones de Clusters
  • Elección de diseño
  • Programación
  • "Shuffle" de configuraciones
  • Recolector de basura
  • Gestión de la memoria
  • Paralelismo
  • Mejoras en el filtrado
  • Repartición
  • Funciones definidas por el usuario
  • Cacheo de datos de forma temporal
  • Uniones
  • Agregaciones
  • Transmisión de variables
tema 23

Buenas prácticas y especificaciones de lenguajes

  • Recomendaciones de programación paralela
  • Inmutabilidad
  • Uso de lambdas
  • Bucles
  • Uso de funciones dentro de Dataframes
  • Especificaciones y diferencias de PySpark (Solo con Python)
  • Integración con Pandas (Solo con Python)
  • Especificaciones y diferencias de R con Spark

Curso de Spark bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient