• Aide
  • Eurêkoi Eurêkoi

Livre

Apache Spark : développez en Python pour le big data

Résumé

Présentation des fondements et de l'ensemble des fonctionnalités de ce framework open source de calcul distribué. Architecture logicielle, composants, langages, transformation de données, fenêtrages, apprentissage machine sont passés en revue. Avec des exemples de mise en pratique, des exemples de code et une partie consacrée à l'industrialisation de Spark. Version en ligne gratuite.


  • Éditeur(s)
  • Date
    • C 2022
  • Notes
    • La couv. porte en plus : "Informatique technique", "En téléchargement : code source des exemples" ; "+ quiz" ; "Version en ligne offerte ! pendants 1 an"
    • La 4e de couv. indique : "Sur www.editions-eni.fr : le code source des exemples du livre"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (308 p.) : ill. ; 22 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-03378-0
  • Indice
  • Quatrième de couverture
    • Apache Spark

      Développez en Python pour le big data

      Ce livre sur le framework Apache Spark vous permet d'apprendre à développer des applications en Python en vous appuyant sur l'analyse et le traitement de données volumineuses ainsi que sur la notion d'apprentissage automatique.

      Après quelques définitions de termes liés au domaine de la data, vous découvrez les fondements de Spark. Vous appréhendez l'architecture logicielle du framework, ses composants et les différents langages avec lesquels il est possible de développer.

      Vous entrez ensuite concrètement dans la transformation de données. Fonctions numériques, alphanumériques, ajouts d'information, suppressions, agrégations de premier ordre et plus complexes sont à l'honneur. Des fonctionnalités plus avancées telles que les fonctions de fenêtrage et celles définies par les utilisateurs sont étudiées et les nombreuses API de Spark parcourues, tout en étant illustrées par des exemples.

      Dans la suite du livre, l'auteur dévoile l'apprentissage machine. Apprentissage supervisé, non supervisé, profond et moteurs de recommandation sont autant de concepts détaillés. Vous découvrez les différents algorithmes présents dans Spark, les manières de préparer des données à l'entraînement ainsi que les possibilités d'évaluation d'un système prédictif au travers de plusieurs mises en pratique. Les notions d'arbres de décision, de forêts aléatoires, de réseaux de neurones, de régressions linéaires et de factorisation de matrices vous sont expliquées ainsi que le traitement des informations numériques et la vectorisation de textes.

      Pour finir, un chapitre met en avant l'industrialisation de Spark. Déployer, déboguer et tester son application ainsi que les subtilités de l'outil pour assurer une performance optimale sont autant d'éléments cruciaux détaillés.

      Si les exemples de code du livre sont en Python, langage aujourd'hui le plus utilisé avec Spark, certains sont en Scala, API la plus aboutie, pour vous apporter une vision complète du framework.


  • Tables des matières
      • Apache Spark

      • Développez en Python pour le big data

      • Eni

      • Avant-propos
      • Chapitre 1
      • Le framework Spark et ses rouages
      • 1. Concepts et composants11
      • 1.1 Définition11
      • 1.2 Histoire de Spark12
      • 1.3 Le big data (mégadonnées)13
      • 1.4 L'analyse de données14
      • 1.5 L'apprentissage automatique15
      • 1.6 Le temps réel15
      • 1.7 Langages15
      • 1.8 Composants17
      • 2. Démarrer avec Spark18
      • 2.1 Installation sur une machine versus installation sur un cluster18
      • 2.2 Solutions on-premise (sur site)19
      • 2.3 Solutions cloud (nuage informatique)20
      • 2.4 Paramétrer l'interface Databricks pour tester Spark21
      • 2.5 Étendre Spark avec des paquets28
      • 2.6 Un premier code Spark31
      • 3. Un framework distribué33
      • 3.1 Le concept de distribution33
      • 3.2 Les raisons de la distribution34
      • 3.2.1 Élasticité horizontale34
      • 3.2.2 Répartition géographique des données35
      • 3.2.3 Tolérance aux pannes36
      • 3.3 Distribution des données37
      • 3.4 Distribution des calculs40
      • 3.5 Distribution dans Spark .41
      • 4. Les types d'exécution de Spark43
      • 4.1 Exécuter Spark43
      • 4.2 Exécuter Spark en mode local45
      • 4.3 Exécuter Spark en mode client45
      • 4.4 Exécuter Spark en mode cluster46
      • 5. Le mode de fonctionnement interne46
      • 5.1 Les stages et les shuffles46
      • 5.2 Les actions et les transformations48
      • 6. Lire et écrire des données50
      • 6.1 Principes de lecture, d'écriture et de transformation de données50
      • 6.2 Lire des données51
      • 6.3 Ecrire des données54
      • 6.4 Un exemple de lecture et d'écriture57
      • 6.5 Lire et écrire des données CSV61
      • 6.6 Lire et écrire des données JSON64
      • 6.7 Lire et écrire des données Parquet65
      • 6.8 Lire et écrire des données DeltaLake66
      • 6.9 Lire et écrire des données avec Kafka66
      • 6.10 Lire et écrire des données avec une base de données SQL70
      • 7. Types de données et schéma72
      • 7.1 Concepts de type et de schéma72
      • 7.2 Des lignes et des colonnes76
      • 7.3 Types simples77
      • 7.3.1 Les types simples de Spark et de Python77
      • 7.3.2 Les fonctions pour les types numériques78
      • 7.3.3 Les fonctions pour les types alphanumériques80
      • 7.3.4 Les fonctions pour les types temporels82
      • 7.4 Types complexes84
      • 7.4.1 Les fonctions pour le type tableau84
      • 7.4.2 Les fonctions pour le type dictionnaire87
      • 7.4.3 Les fonctions pour le type StructType88
      • 7.5 Schémas implicites ou explicites90
      • 7.6 Un exemple de transformations de type90
      • Chapitre 2
      • Spark pour l'enrichissement de données
      • 1. L'API DataFrame93
      • 1.1 Introduction93
      • 1.2 Manipulations95
      • 1.2.1 Ajouter des colonnes95
      • 1.2.2 Renommer des colonnes96
      • 1.2.3 Supprimer des colonnes98
      • 1.2.4 Sélection de données98
      • 1.2.5 Filtrage de données103
      • 1.2.6 Diverses autres méthodes à partir de l'objet DataFrame104
      • 1.3 Agrégations de données105
      • 2. L'API SQL110
      • 2.1 Principes de l'API SQL110
      • 2.1.1 Intérêts de l'API SQL110
      • 2.1.2 DataFrame et SQL111
      • 2.1.3 Plusieurs API, des performances identiques114
      • 2.1.4 La logique SQL dans DataFrame115
      • 2.2 Manipulation de l'API SQL116
      • 2.2.1 Premières manipulations116
      • 2.2.2 Des agrégations plus avancées avec les fonctions de fenêtrage118
      • 2.2.3 Des agrégations plus avancées avec les groupes d'agrégations124
      • 2.2.4 Créer ses propres fonctions130
      • 3. L'API Dataset132
      • 3.1 Principes et intérêts132
      • 3.2 Création132
      • 3.2.1 À partir d'une séquence132
      • 3.2.2 À partir d'un objet DataFrame134
      • 3.3 Manipulations135
      • 3.3.1 Transformations de données135
      • 3.3.2 Filtrage138
      • 3.4 L'attention portée à Python138
      • 4. Les jointures de données139
      • 4.1 Introduction139
      • 4.2 Différentes API143
      • 4.2.1 L'API SQL143
      • 4.2.2 L'API Dataset144
      • 4.3 Différents types de jointures146
      • 4.3.1 Jointures externes146
      • 4.3.2 Jointures internes147
      • 4.3.3 Jointures entières147
      • 4.3.4 Semi-jointure149
      • 4.3.5 Jointure anti149
      • 4.3.6 D'autres types de jointures149
      • 4.4 Gérer les doublons150
      • 4.4.1 Ne pas utiliser d'expression si possible150
      • 4.4.2 Renommer les colonnes avant151
      • 4.4.3 Avoir recours à l'API SQL152
      • 5. RDD, l'API bas niveau152
      • 5.1 Présentation générale152
      • 5.1.1 L'histoire152
      • 5.1.2 Caractérisation des RDD153
      • 5.1.3 La programmation fonctionnelle inhérente à Spark154
      • 5.1.4 Les cas d'utilisation154
      • 5.1.5 Relations avec les API haut niveau155
      • 5.2 Premières manipulations157
      • 5.2.1 Créer un objet RDD depuis un autre objet Spark157
      • 5.2.2 Créer un objet RDD depuis une liste157
      • 5.2.3 Créer un objet RDD depuis des sources de données158
      • 5.2.4 Enregistrer un objet RDD159
      • 5.2.5 Filtrer des données160
      • 5.2.6 Modifier ligne à ligne des données161
      • 5.2.7 Renvoyer plusieurs lignes à partir d'une ligne162
      • 5.2.8 Afficher le contenu d'un RDD164
      • 5.2.9 Enregistrer le contenu d'un RDD164
      • 5.2.10 Calculer des valeurs à partir d'un RDD165
      • 5.3 Les agrégations et jointures165
      • 5.3.1 Les agrégations165
      • 5.3.2 Les jointures167
      • 6. L'API Spark streaming168
      • 6.1 Introduction168
      • 6.1.1 Streaming versus batch168
      • 6.1.2 Un système robuste169
      • 6.1.3 Une API proche des autres API de Spark170
      • 6.1.4 Plusieurs manières de faire du streaming170
      • 6.1.5 Les sources et sorties171
      • 6.2 Manipulations173
      • 6.2.1 Structure d'une requête streaming173
      • 6.2.2 Déboguer176
      • 6.2.3 Transformations179
      • 6.2.4 Agrégations180
      • 6.2.5 Jointures184
      • 6.2.6 Opérations de fenêtrage (window operations)185
      • 6.2.7 Les déclencheurs186
      • 6.3 Les limites187
      • Chapitre 3
      • Spark pour l'apprentissage automatique
      • 1. Introduction à l'apprentissage automatique189
      • 1.1 L'approche de la boîte noire magique189
      • 1.2 L'approche par les mathématiques et statistiques190
      • 1.3 L'approche par l'intuition190
      • 1.4 Définition191
      • 1.4.1 La machine autonome : une idée ancienne191
      • 1.4.2 L'idée de machine autonome renouvelée avec l'informatique191
      • 1.4.3 Une tentative de définition192
      • 1.5 Spark et l'apprentissage automatique193
      • 2. Différentes étapes d'un projet d'apprentissage automatique194
      • 2.1 Prétraiter les données196
      • 2.2 Extraire des caractéristiques197
      • 2.2.1 Extraire des caractéristiques de données textuelles197
      • 2.2.2 TF-IDF198
      • 2.2.3 Word2Vec205
      • 2.3 Transformer des caractéristiques210
      • 2.3.1 Introduction210
      • 2.3.2 Transformations des données alphanumériques213
      • 2.3.3 Les fonctions de remise à l'échelle218
      • 2.3.4 Transformation des données numériques220
      • 3. Classification221
      • 3.1 Définition221
      • 3.2 Structure d'un algorithme d'apprentissage dans Spark224
      • 3.2.1 Quelques mots-clés224
      • 3.2.2 L'évaluation225
      • 3.2.3 Estimer et transformer227
      • 3.3 Différents algorithmes230
      • 3.3.1 L'arbre de décision230
      • 3.3.2 La forêt aléatoire239
      • 4. Régression240
      • 4.1 Définition240
      • 4.2 Différents algorithmes241
      • 4.2.1 L'arbre de décision241
      • 4.2.2 La régression linéaire244
      • 5. Apprentissage non supervisé250
      • 5.1 Définition250
      • 5.2 Exemple251
      • 6. Recommandation254
      • 6.1 Définition254
      • 6.2 Exemple255
      • 6.2.1 Extraire des caractéristiques invisibles à l'oeil255
      • 6.2.2 Evaluer un algorithme de recommandation257
      • 6.2.3 Démarrage à froid et valeurs implicites258
      • 6.2.4 Implémentation d'une matrice de factorisation259
      • 7. Apprentissage profond262
      • 7.1 Définition262
      • 7.2 Exemple263
      • 8. Opérations statistiques265
      • 8.1 Mesurer la corrélation de plusieurs variables265
      • 8.2 Tests d'hypothèse267
      • Chapitre 4
      • Industrialiser Spark
      • 1. Améliorer les performances de temps269
      • 1.1 Dimensionner adéquatement le cluster269
      • 1.2 Choisir la bonne API270
      • 1.3 Éviter les UDF270
      • 1.4 User précautionneusement des actions270
      • 1.5 Éviter le shuffle272
      • 1.5.1 Rappel du concept de shuffle272
      • 1.5.2 Penser mégadonnées273
      • 1.5.3 Différentes stratégies de jointure274
      • 1.5.4 Les fonctions coalesce et répartition274
      • 2. Tester avec Spark275
      • 2.1 Tester sans Spark275
      • 2.2 Tester avec Spark276
      • 2.3 Créer ou importer les données279
      • 2.4 Des tests performants279
      • 2.4.1 Limiter les actions279
      • 2.4.2 Un même processus pour différents tests281
      • 2.4.3 Limiter les logs281
      • 2.4.4 Limiter le shuffle282
      • 3. Améliorer les performances algorithmiques282
      • 3.1 Les performances dans l'apprentissage automatique282
      • 3.2 Exemple avec validation croisée à k blocs283
      • 3.3 Séparation test/entraînement286
      • 4. Déboguer avec Spark287
      • 4.1 Vision du plan physique287
      • 4.1.1 Vision par l'intermédiaire du schéma287
      • 4.1.2 Vision par l'intermédiaire du plan écrit293
      • 4.2 Les autres onglets de Spark UI295
      • 4.3 Déboguer avec Spark UI299
      • 5. Se repérer dans la documentation300
      • 5.1 La documentation générale300
      • 5.2 La documentation Python300
      • 6. Déployer l'apprentissage automatique301
      • 6.1 Enregistrer un modèle301
      • 6.2 Récupérer un modèle sauvegardé301
      • Conclusion303
      • Index305

  • Origine de la notice:
    • BPI
  • Disponible - 681.234 SAB

    Niveau 3 - Informatique