[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-pyspark-traiter-des-donnees-distribuees":3,"highlight-python-from pyspark.sql imp":44},{"id":4,"name":5,"slug":6,"location":7,"targetAudienceFormatMarkdown":8,"prerequisitesFormatMarkdown":9,"objectivesFormatMarkdown":10,"descriptionFormatMarkdown":11,"teachingMethodsFormatMarkdown":12,"teachingResourcesFormatMarkdown":13,"evaluationMethodsFormatMarkdown":14,"accessibilityFormatMarkdown":15,"accessMethodsFormatMarkdown":16,"minimumParticipants":7,"maximumParticipants":7,"duration":17,"reference":18,"trainerType":7,"updated_at":19,"created_at":20,"price":21,"organizationMode":22,"theme":25,"code":29,"tags":34,"metadata":35},"/api/courses/0b1597eb-b298-11f1-a993-d8ca06000363","PySpark : traiter des données distribuées","pyspark-traiter-des-donnees-distribuees",null,"Ingénieurs données, développeurs, analystes techniques, ingénieurs décisionnels.","Pratique de Python et connaissance du langage SQL.","Développer des traitements de données massives avec Spark et PySpark.","--day1--\n\n## Architecture de Spark et prise en main\n\n-   Architecture : pilote, exécuteurs, gestionnaire de ressources\n-   Évaluation paresseuse, transformations et actions\n-   Modes d'exécution : local, grappe, plateforme managée\n-   Session Spark, configuration et lecture de données\n-   Premières manipulations de DataFrames\n-   Travaux pratiques : mise en place de l'environnement et premiers traitements sur un jeu de données réel\n\n--break--\n\n## Transformations et API DataFrame\n\n-   Sélection, filtrage, colonnes calculées, expressions\n-   Agrégations et regroupements\n-   Jointures : types, stratégies d'exécution, jointure diffusée\n-   Fonctions de fenêtrage\n-   API SQL de Spark et interopérabilité avec l'API DataFrame\n-   Travaux pratiques : construction d'un traitement analytique complet sur données volumineuses\n\n--day2--\n\n## Lecture, écriture et formats\n\n-   Sources et destinations : fichiers, bases, stockage objet\n-   Formats colonnes et compression\n-   Partitionnement à l'écriture et organisation des sorties\n-   Schémas : inférence, schéma explicite, évolution\n-   Écriture dans des tables transactionnelles\n-   Travaux pratiques : chaîne complète de lecture, transformation et écriture partitionnée\n\n--break--\n\n## Performance et optimisation\n\n-   Plan d'exécution logique et physique, lecture du plan\n-   Partitions, parallélisme et dimensionnement des exécuteurs\n-   Redistribution des données : coût et réduction\n-   Déséquilibre de données et stratégies de correction\n-   Mise en cache, persistance et gestion de la mémoire\n-   Travaux pratiques : optimisation d'un traitement lent avec analyse du plan et mesure des gains\n\n--day3--\n\n## Traitement en flux et cas avancés\n\n-   Traitement en flux structuré : principes et sources\n-   Fenêtrage temporel et données tardives\n-   Écriture en continu et garanties de livraison\n-   Fonctions définies par l'utilisateur et coût associé\n-   Traitement de données semi-structurées\n-   Travaux pratiques : mise en place d'un traitement en flux avec agrégation par fenêtre\n\n--break--\n\n## Industrialisation\n\n-   Structuration d'un projet Spark et réutilisation du code\n-   Tests des traitements de données et jeux de données de test\n-   Ordonnancement, paramétrage et exécution planifiée\n-   Supervision des traitements et diagnostic des échecs\n-   Maîtrise des coûts d'exécution sur plateforme managée\n-   Travaux pratiques : industrialisation complète d'un traitement avec tests et ordonnancement","Présentiel, distanciel, hybride","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l’ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h ouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la formation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.","21.00","L1-DAT-18","2026-09-18T09:45:10+00:00","2026-09-17T15:02:31+00:00","2220.00",{"id":23,"name":24},"/api/organization_mode_types/6","HYBRID",{"id":26,"name":27,"slug":28},"/api/themes/0ac0e95d-b298-11f1-a993-d8ca06000363","Bases de données, outils décisionnels, Big Data et Cloud computing","bases-de-donnees-outils-decisionnels-big-data-et-cloud-computing",{"id":30,"label":31,"domain":32},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":33},"32 - Communication et information",[],{"desc-accroche":36,"Description":37,"icon-color":38,"icon-name":39,"code-langage":40,"code-snippet":41,"courte-description":42,"titre-accroche":43},"Manipulez des DataFrames Spark, écrivez des transformations distribuées, comprenez les mécanismes d'exécution (partitions, shuffle, plan d'exécution) et optimisez vos jobs PySpark avant d'écrire vers des formats analytiques comme Parquet.","Écrire du code PySpark qui fonctionne est simple ; écrire du code PySpark qui passe à l'échelle sans exploser en production l'est beaucoup moins. Cette formation construit une compréhension du moteur Spark — partitions, exécution distribuée, plans d'exécution (DAG) et shuffle — avant d'aborder la manipulation de DataFrames : sélections, jointures, agrégations, fonctions fenêtrées et UDF. Les stagiaires apprennent à diagnostiquer les problèmes de performance courants (asymétrie de données, shuffle excessif, partitionnement inadapté) et à écrire les résultats vers des formats comme Parquet ou Delta Lake. Des travaux pratiques sur des jeux de données volumineux permettent de manipuler un cluster Spark réel. Cette formation intermédiaire s'adresse aux ingénieurs données, développeurs, analystes techniques et ingénieurs décisionnels développant des traitements PySpark.","#E25A1C","mdi:flash","python","from pyspark.sql import functions as F\n\ndf = spark.read.parquet(\"/data/ventes\")\n\nresultat = (\n    df.groupBy(\"region\")\n      .agg(F.sum(\"montant\").alias(\"total\"))\n      .repartition(8, \"region\")\n)\n\nresultat.write.mode(\"overwrite\").parquet(\"/data/agrege\")","Formation intermédiaire pour développer des traitements de données massives avec PySpark : DataFrames, transformations distribuées, optimisation et écritures vers des formats analytiques.","Développez des traitements de données massives avec Apache Spark et PySpark pour transformer, agréger et optimiser des volumes distribués à grande échelle.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-python\">\u003Cspan class=\"hljs-keyword\">from\u003C/span> pyspark.sql \u003Cspan class=\"hljs-keyword\">import\u003C/span> functions \u003Cspan class=\"hljs-keyword\">as\u003C/span> F\n\ndf = spark.read.parquet(\u003Cspan class=\"hljs-string\">&quot;/data/ventes&quot;\u003C/span>)\n\nresultat = (\n    df.groupBy(\u003Cspan class=\"hljs-string\">&quot;region&quot;\u003C/span>)\n      .agg(F.\u003Cspan class=\"hljs-built_in\">sum\u003C/span>(\u003Cspan class=\"hljs-string\">&quot;montant&quot;\u003C/span>).alias(\u003Cspan class=\"hljs-string\">&quot;total&quot;\u003C/span>))\n      .repartition(\u003Cspan class=\"hljs-number\">8\u003C/span>, \u003Cspan class=\"hljs-string\">&quot;region&quot;\u003C/span>)\n)\n\nresultat.write.mode(\u003Cspan class=\"hljs-string\">&quot;overwrite&quot;\u003C/span>).parquet(\u003Cspan class=\"hljs-string\">&quot;/data/agrege&quot;\u003C/span>)\u003C/code>\u003C/pre>",1789717727766]