loader image

Spark Java – Traitement des données

Code stage

SPARKJAVA01

Durée

21 heures | 3 jours

Z

Certification

non

Objectifs pédagogiques

  • 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

Niveau requis

Avoir une connaissance préalable de Java est supposée, mais tout ce qui dépasse les bases est expliqué. Une connaissance préalable de SQL sera utile pour une partie du cours, mais si vous ne l'avez jamais utilisé auparavant, ce sera une bonne première expérience. Java 8 est requis pour le cours (Spark ne supporte pas actuellement Java 9+, cependant Java 8 est nécessaire pour la syntaxe lambda fonctionnelle).

Public concerné

Développeurs, statisticiens, consultants Big Data, data analysts, data scientists, architectes.

Programme

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
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
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.