Course Code: pysprkub
Duration: 21 hours

Prerequisites:

Les participants doivent disposer des compétences suivantes :

  • Expérience pratique de la programmation en Python, y compris les fonctions, les modules et les concepts de base de la programmation orientée objet.
  • Expérience débutante à intermédiaire dans le travail avec Pandas et les flux de traitement de données tabulaires.
  • Familiarité basique avec PySpark et les DataFrames Spark, y compris la lecture de données, les transformations, les actions, les jointures et les agrégations.
  • Compréhension générale des concepts SQL et de traitement de données, y compris le filtrage, le regroupement et la jointure de jeux de données.
  • Familiarité basique avec les concepts Docker et Kubernetes, tels que les conteneurs, les images et les pods. Aucune expérience d'administration Kubernetes n'est requise.
  • Compréhension basique des formats de données courants tels que CSV, JSON et Parquet.

Les participants n'ont pas besoin d'être des administrateurs Kubernetes ou des spécialistes des infrastructures. Le cours se concentre sur la manière dont les ingénieurs données, les développeurs et les scientifiques des données peuvent comprendre et optimiser leurs charges de travail Spark fonctionnant sur Kubernetes sous l'angle applicatif et de la configuration.

Public cible

Ce cours s'adresse aux professionnels qui développent, maintiennent ou optimisent des charges de travail de traitement de données et d'apprentissage automatique en utilisant Python et Spark dans des environnements cloud ou conteneurisés.

Il est particulièrement adapté à :

  • Les ingénieurs données travaillant avec PySpark, le traitement de données distribué et les pipelines ETL.
  • Les scientifiques des données traitant de grands jeux de données ou exécutant des charges de travail d'apprentissage automatique avec Spark, Pandas ou Polars.
  • Les développeurs Python travaillant sur des applications intensives en données et cherchant à améliorer l'efficacité de la mémoire et les performances de traitement.
  • Les ingénieurs en apprentissage automatique gérant la préparation des données et les charges de travail d'entraînement de modèles sur des environnements Kubernetes ou cloud partagés.
  • Les ingénieurs analytiques travaillant avec de grands jeux de données et cherchant à améliorer l'efficacité du traitement des données.
  • Les ingénieurs DevOps, plateforme et cloud qui prennent en charge les charges de travail Spark sur Kubernetes et qui doivent comprendre comment la configuration au niveau applicatif affecte l'utilisation des ressources et les performances.
  • Les responsables techniques et architectes de solutions impliqués dans la conception ou l'optimisation de plateformes modernes de traitement de données.

Overview:

Ce cours pratique de trois jours se concentre sur la conception et l'optimisation de charges de travail de traitement de données efficaces à l'aide de PySpark, Pandas et Polars dans des environnements basés sur Kubernetes.

Les participants développeront une compréhension pratique de l'exécution des applications Spark sur Kubernetes et de la manière dont les décisions de configuration au niveau applicatif influencent les performances, la scalabilité, la consommation de ressources et les coûts. Le cours couvre des domaines clés d'optimisation, notamment la taille des exécuteurs, l'allocation de la mémoire, l'allocation dynamique, les stratégies de partitionnement, le comportement du shuffle, les problèmes de petits fichiers et le traitement efficace de Parquet.

Le cours aborde également les défis courants liés à l'utilisation de Pandas, tels que les limitations de mémoire et les erreurs de dépassement de mémoire, et introduit Polars comme alternative haute performance pour certaines charges de travail de traitement de données. À travers des exercices pratiques, les participants diagnostiqueront les problèmes de performance et de mémoire, compareront différentes stratégies de configuration et appliqueront des techniques d'optimisation à des scénarios réalistes d'ETL et d'apprentissage automatique.

La priorité tout au long du cours est donnée à la prise de décision pratique : comprendre comment identifier les goulets d'étranglement, sélectionner l'outil approprié, configurer Spark efficacement et trouver l'équilibre entre les performances et la consommation de ressources d'infrastructure et les coûts.

Course Outline:

Module 1 : Fondamentaux du Big Data et de Spark

  • Aperçu de l'écosystème Big Data et du rôle de Spark dans les plateformes de données modernes
  • Compréhension de l'architecture Spark : driver, exécuteurs, gestionnaire de cluster, évaluation paresseuse (lazy evaluation), DAG et planification d'exécution
  • Différences entre les API RDD et DataFrame et quand utiliser chaque approche
  • Création et configuration de SparkSession et compréhension des fondamentaux de la configuration applicative

Module 2 : DataFrames PySpark

  • Lecture et écriture de données depuis des sources et formats d'entreprise : CSV, JSON, Parquet et Delta
  • Travail avec les DataFrames PySpark : transformations, actions, expressions de colonnes, filtrage, jointures et agrégations
  • Mise en œuvre d'opérations avancées telles que les fonctions fenêtrées, le gestionnaire de timestamps et le travail avec des données imbriquées
  • Application de contrôles de qualité des données et rédaction de code PySpark réutilisable et maintenable

Module 3 : Bases de Kubernetes et Docker pour les utilisateurs de Spark

  • Compréhension de la relation entre les images Docker et les pods Kubernetes et les processus driver et exécuteur de Spark — une vision conceptuelle pour les consommateurs de cluster, non les administrateurs
  • Compréhension de ce qui se passe lorsqu'un travail Spark s'exécute sur Kubernetes : ordonnancement des pods, demandes et limites de ressources, et comment les paramètres de session s'y rapportent
  • Compréhension de ce que vous contrôlez via les paramètres de session Spark par rapport à ce que l'équipe plateforme contrôle via le provisionnement du cluster — et pourquoi cette frontière est importante pour le réglage (tuning)
  • Exercice pratique : Inspecter un travail Spark-sur-Kubernetes en cours d'exécution dans le cluster sandbox et identifier les pods driver et exécuteur

Module 4 : Configuration de session Spark sur Kubernetes — Analyse approfondie

  • Compréhension du nombre d'exécuteurs par rapport à la taille des exécuteurs : compromis mémoire-coeurs et comment y réfléchir
  • Allocation de la mémoire du driver et des exécuteurs, surcoût de mémoire, et comment cela se traduit en ressources de pods
  • Allocation dynamique : son comportement sur Kubernetes, quand elle économise les ressources et quand elle ne le fait pas
  • Exercice pratique : Exécuter le même travail avec différentes configurations d'exécuteurs et de cœurs et comparer le temps d'exécution et l'utilisation des ressources

Module 5 : Comportement de mise à l'échelle et optimisation des coûts

  • Compréhension de la manière dont l'ajout ou la suppression de nœuds modifie le comportement du travail, le temps d'achèvement et la consommation de ressources
  • Comparaison de nombreux petits exécuteurs par rapport à quelques grands : compromis performances-coûts
  • Comportement du shuffle et réglage des partitions de shuffle, y compris l'estimation de l'impact des choix de configuration sur les coûts
  • Exercice pratique : Mettre à l'échelle le cluster sandbox de cinq à dix nœuds et observer l'effet sur le temps d'achèvement du travail et la consommation de ressources

Module 6 : Ingestion et partitionnement efficaces des données

  • Compréhension du problème des petits fichiers : pourquoi les sources divisées en de nombreux fichiers Parquet de 1 à 5 Mo dégradent les performances et faussent le partitionnement
  • Stratégies de re-partitionnement et de coalescence
  • Contrôle des tailles de partitions lors de la lecture et de l'écriture
  • Écriture efficace de Parquet pour éviter de recréer le problème des petits fichiers en aval
  • Exercice pratique : Charger un jeu de données composé de nombreuses petites partitions Parquet, appliquer différentes stratégies de re-partitionnement et comparer les performances avant et après optimisation

Module 7 : Gestion de la mémoire Pandas et diagnostic des pannes

  • Compréhension des causes racines des erreurs de dépassement de mémoire dans Pandas et reconnaissance des symptômes
  • Application de motifs de conversion économes en mémoire entre Spark et Pandas
  • Évitement des explosions de mémoire lors de l'écriture de grands jeux de données en CSV
  • Utilisation du traitement par lots (chunking) et de l'optimisation des types de données (dtype) pour les environnements contraints
  • Exercice pratique : Reproduire un scénario typique de dépassement de mémoire avec Pandas et le résoudre en utilisant le chunking et l'optimisation des dtype

Module 8 : Polars comme outil complémentaire

  • Positionnement de Polars par rapport à Pandas : caractéristiques de performance, évaluation paresseuse et comportement mémoire
  • Compréhension de l'endroit où Polars s'intègre avec PySpark et Pandas dans les stacks de données cloud modernes et les plans de migration, y compris les environnements AWS
  • Exercice pratique : Réécrire une transformation intensive en Pandas avec Polars et comparer l'utilisation de la mémoire et la vitesse de traitement

Module 9 : Application de l'optimisation aux charges de travail ETL et ML

  • Application des principes de configuration, de partitionnement et de gestion de la mémoire à un pipeline ETL réaliste
  • Compréhension des considérations d'optimisation spécifiques aux charges de travail d'apprentissage automatique s'exécutant sur le même cluster
  • Application d'un flux de travail de réglage pratique pour diagnostiquer systématiquement les problèmes de coût et de performance
  • Exercice pratique : Terminer un mini-projet de bout en bout combinant le chargement de données, la transformation et une étape simple d'entraînement de modèle, les participants effectuant eux-mêmes le réglage de la configuration Spark

Sites Published:

United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理

香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理

USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars

Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars

Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével

Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars

Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars

Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars

Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes

Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme

Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理

Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars

India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars

United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리

Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars

Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars