Spark Java - Traitement des données
Prérequis
Public admis
- Salarié en Poste
- Entreprise
Demandeur d'emploi et Etudiant non admis
Financement
- Votre OPCO
- Financement personnel
Financement CPF non pris en charge
Modalités
- En centre
- À distance
Objectifs pédagogiques
A l'issue de cette formation, vous serez capable de :
- Utiliser le style fonctionnel Java pour définir des tâches complexes de traitement des données
- Différencier les API RDD (Resilient Distributed Dataset) et DataFrame
- Utiliser une syntaxe de style SQL pour produire des rapports sur des ensembles de Big Data
- Mettre en place des algorithmes d'apprentissage automatique avec le Big Data et Spark ML (Machine Learning)
- Connecter Spark à Apache Kafka pour traiter des flux de Big Data
- Expliquer comment le streaming structuré peut être utilisé pour construire des pipelines avec Kafka.
Programme de la formation
Jour 1
Introduction
- Architecture de Spark et les RDD
Installation du Spark
Reduce sur les RDD
Mapping et outputting
- Les opérations de mapping
- Outputting des résultats sur la console
- Compter les éléments du Big Data
- "NotSerializableException" avec Spark
Tuples
- RDD des objets
- Tuples et RDD
Pair RDD
- Vue d'ensemble des Pair RDD
- Construire Pair RDD
- Coder le "reduceByKey"
- Utilisation de l'API Fluent
- Groupement par clé (BY KEY)
FlatMaps et filters
Lecture du disque
Classement des mots-clés en pratique
- Exigences pratiques
- Solution pratique (avec tri)
Tri et coalescence
- Coalesce dans Spark ?
Déploiement vers AWS EMR (Amazon Elastic MapReduce)
- Comment démarrer un cluster Spark pour EMR
- Emballage d'un Spark JAR pour EMR
- Exécuter un travail Spark sur EMR
- Comprendre la sortie de la progression du travail
- Calculer les coûts d'EMR et terminer le cluster
Jointures
- Internes
- Externes de gauche et optionnelles
- Externes à droite
- Complètes et cartésiennes
Exemples de travaux pratiques (à titre indicatif)
- Big Data (grand exercice)
- Présentation des exigences
- Echauffement
- Exigences de l'exercice principal
- Marche à suivre
La performance des RDD
- Transformations et actions
- Le DAG (Directed Acyclic Graph) et Spark UI
- Transformations étroites et larges
- Shuffles
- Gérer les BY KEY
- "map-side-reduces"
- Mise en cache et persistance
Jour 2
Spark SQL : introduction
- Utilisation pratique de Spark SQL
Datasets
- Les bases du Dataset
- Filtrage en utilisant les expressions, lambda et colonnes
SQL : syntaxe
- Utilisation d'une vue temporaire Spark pour SQL
Données en mémoire
Groupements et agrégations
Date Formatting
Multiple Groupings
Ordering
DataFrame API
- SQL vs DataFrame
- Groupement DataFrame
Pivot tables
- Coder Pivot table en Spark
Plus d'agrégations
- Comment utiliser la méthode "agg" en Spark
Exemples de travaux pratiques (à titre indicatif)
- Comment utiliser lambda pour écrire un UDF (User Defined Functions) en Spark
- Utilisation de multiples paramètres d'entrées en Spark UDF
- Utilisation des UDF en Spark SQL
Performance de Spark SQL
- Comprendre le Spark UI pour Spark SQL
- Performances de SQL et de DataFrame ?
- Mise à jour et réglage "spark.sql.shuffle.partitions"
HashAggregation
- Explication des plans d'exécution
- HashAggregation
Performance Spark SQL vs RDD
- Introduction de ML
- Apprentissage supervisé et non-supervisé
- Processus de construction d'un modèle
Régression linéaire
- Introduction
- Programmation des modèles de régression linéaire
- Assemblage des vecteurs des paramètres
- Fitting des modèles
Données d'apprentissage
- Training vs test et holdout Data
- Guide pratique
- Evaluation de la précision des modèles avec R2 et RMSE (Root Mean Square Error)
Paramètres d'ajustement des modèles
- Ajustement des paramètres des modèles de régression linéaire
- Training, test et holdout Data
Sélection des caractéristiques (features)
- Description des caractéristiques
- Corrélation des caractéristiques
- Identification et élimination des caractéristiques dupliquées
- Préparation des données
Données non numériques
- Utilisation "OneHotEncoding"
- Comprendre les Vectors
Pipelines
Cas d'étude
Régression logistique
- True vs false / negatives vs postives
- Implémentation de la régression logistique
Les arbres de décision
- Aperçu des arbres de décision
- Construction du modèle
- Interprétation d'un arbre de décision
- Random Forest
K-means clustering
Jour 3
Spark Streaming et streaming structuré avec Kafka
Introduction au streaming
- DStreams
- Commencer Streaming Job
- Transformations et agrégations streaming
- Spark UI pour les Streaming Jobs
- Traitement des lots
Streaming avec Apache Kafka
- Introduction et installation
- Utilisation du Kafka Event Simulator
- Intégration de Kafka avec Spark
- Utilisation de KafkaUtils pour accéder au DStream
- Ecrire une agrégation Kafka
- Ajouter une fenêtre et "slide interval"
Streaming structuré
- Aperçu du streaming structuré
- Les puits de données
- Les modes de sortie du streaming structuré
- Fenêtres et filigranes
- Batch pour le streaming structuré ?
- Kafka Structured Streaming Pipelines
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation
Les + de la formation
Le cours comprend :
- un module couvrant Spark ML, un ajout passionnant à Spark qui vous permet d'appliquer des modèles d'apprentissage automatique à vos Big Data ! Aucune expérience mathématiques n'est nécessaire !
- un module complet de 3 heures couvrant Spark Streaming, où vous aurez une expérience pratique de l'intégration de Spark avec Apache Kafka pour gérer les flux de données en temps réel. Nous utilisons à la fois les API DStream et streaming structuré.

Proposé par
M2I
"Un leadership dans le domaine de la formation"

Proposé par
M2I
