Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Introduction aux DataFrames Spark | Travail Avec les Données
Fondamentaux de Databricks : Guide du Débutant

Introduction aux DataFrames Spark

Glissez pour afficher le menu

Note
Définition

Un Spark DataFrame est une collection distribuée de données organisée en colonnes nommées. Conceptuellement, il équivaut à une table dans une base de données relationnelle ou à une feuille de calcul avec des en-têtes de colonnes, mais il est conçu pour être traité sur un cluster d'ordinateurs.

En abordant la section 4, l'attention se porte désormais sur les données elles-mêmes plutôt que sur l'interface. Pour travailler efficacement dans Databricks, il est essentiel de comprendre la notion de DataFrame. Il s'agit de la structure fondamentale utilisée par Apache Spark pour stocker et manipuler les données. Que ce soit en Python, SQL ou Scala, presque toutes les opérations impliquent une interaction avec un DataFrame.

Il existe également une interface PySpark que vous utiliserez par la suite.

Apache Spark est un moteur puissant pour traiter d'énormes volumes de données en parallèle sur de nombreux ordinateurs simultanément. Il est écrit en Scala et assure le traitement principal en arrière-plan dans Databricks.

PySpark est simplement l'interface Python de Spark. Elle permet d'écrire du code Python classique qui indique en réalité à Spark quoi faire en coulisses.

Ainsi, lorsque vous écrivez un df.filter() ou un df.groupBy() dans un notebook Databricks, vous utilisez PySpark — mais c'est Spark qui traite effectivement des millions de lignes sur votre cluster.

L'analogie avec la feuille de calcul

La façon la plus simple de visualiser un DataFrame est de penser à une seule feuille dans un classeur Excel. Elle comporte des lignes de données et des colonnes avec des noms spécifiques comme "Date", "Product_ID" ou "Price". Cependant, contrairement à une feuille Excel qui se trouve sur votre ordinateur portable, un DataFrame Spark est distribué. Cela signifie que si votre ensemble de données est trop volumineux pour un seul ordinateur, Spark divise la "feuille de calcul" en morceaux plus petits et les répartit sur les différents nœuds de votre cluster.

Pourquoi utiliser des DataFrames plutôt que des fichiers bruts ?

Lorsque vous lisez un fichier CSV ou JSON brut dans un DataFrame, Databricks effectue deux opérations importantes :

  • Inférence de schéma : il analyse les données pour comprendre que "Price" est un nombre et "Name" est un texte ;
  • Optimisation : une fois les données dans un DataFrame, Spark peut utiliser son "optimiseur" pour trouver la manière la plus rapide de filtrer ou d'agréger ces données. Il agit comme un GPS, trouvant l'itinéraire le plus efficace vers votre résultat afin de ne pas gaspiller de puissance de calcul.

Caractéristiques principales

Il existe trois caractéristiques principales des DataFrames à retenir :

  • Immuable : une fois qu'un DataFrame est créé, il ne peut pas être modifié. Si vous « nettoyez » les données ou « supprimez une colonne », Spark crée en réalité un nouveau DataFrame avec ces modifications appliquées. Cela garantit l'intégrité des données ;
  • Évaluation paresseuse : Spark n'effectue réellement aucun travail tant que vous ne demandez pas un résultat (comme un comptage ou un affichage). Il construit d'abord un « plan » et ne l'exécute que lorsque cela est absolument nécessaire ;
  • API unifiée : il est possible de créer un DataFrame avec Python puis de l'interroger en SQL. La structure sous-jacente reste la même, ce qui permet le « mélange de langages » pratiqué dans la section 3.

DataFrames vs. Tables

Dans Databricks, les termes « Table » et « DataFrame » sont souvent utilisés de manière interchangeable, mais il existe une légère différence. Une Table est un objet permanent enregistré dans votre Catalog. Un DataFrame est un objet temporaire qui réside dans la mémoire du cluster pendant l'exécution de votre notebook.

En général, le flux de travail sera :

  • Charger les données du Catalog dans un DataFrame ;
  • Manipuler le DataFrame à l'aide du code ;
  • Enregistrer le résultat final dans le Catalog en tant que Table.

1. Comment un Spark DataFrame gère-t-il un ensemble de données trop volumineux pour un seul ordinateur ?

2. Que se passe-t-il lorsque vous « modifiez » un DataFrame dans Spark, par exemple en supprimant une colonne ?

question mark

Comment un Spark DataFrame gère-t-il un ensemble de données trop volumineux pour un seul ordinateur ?

Sélectionnez la réponse correcte

question mark

Que se passe-t-il lorsque vous « modifiez » un DataFrame dans Spark, par exemple en supprimant une colonne ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 4. Chapitre 1
some-alt