Chargement des Données à Partir d'un Fichier dans un DataFrame
Glissez pour afficher le menu
L'objet spark.read constitue le point d'entrée pour la lecture de données externes dans un DataFrame Spark. Il prend en charge divers formats de fichiers, notamment CSV, JSON, Parquet et Delta, et permet de définir la manière dont Spark doit interpréter les fichiers.
Dans la section 2, vous avez téléchargé un fichier CSV dans l'environnement Databricks. Vous allez maintenant apprendre à « extraire » ce fichier du stockage et à le charger dans la mémoire du cluster sous forme de DataFrame à l'aide de Python. Il s'agit de la première étape dans presque tous les pipelines d'ingénierie des données.
Syntaxe de spark.read
Pour charger un fichier, on utilise une chaîne de commandes spécifique. La structure de base est la suivante :
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format : indique à Spark le type de fichier (csv, json, parquet) ;
- option("header", "true") : indique à Spark d'utiliser la première ligne du fichier comme noms de colonnes ;
- load : l'emplacement spécifique du fichier dans Databricks.
Inférence du schéma
Par défaut, Spark considère que chaque colonne d’un fichier CSV est une chaîne de caractères (texte). Pour rendre nos données plus utiles, nous ajoutons une autre option : .option("inferSchema", "true"). Lorsque cette option est activée, Spark examine rapidement les données et identifie automatiquement quelles colonnes sont des entiers, des décimaux ou des booléens. Cela vous évite de devoir définir manuellement les types de données.
Localisation du chemin de votre fichier
Pour lire un fichier, vous avez besoin de son chemin d'accès. Dans l'onglet Catalogue ou Espace de travail, vous pouvez localiser votre fichier téléchargé, cliquer sur les trois points (ellipse) à côté, puis sélectionner « Copier le chemin ». Dans les versions récentes de Databricks, si vous avez téléchargé le fichier via l'interface d'ingestion de données comme nous l'avons fait au chapitre 2.6, les données sont déjà enregistrées en tant que table, que nous pouvons lire en utilisant :
df = spark.read.table("main.default.sample_sales_records")
Cependant, si vous lisez le fichier brut directement depuis un Volume, vous devez utiliser le chemin du fichier :
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Vérification du chargement
Après avoir exécuté la commande de chargement, il est recommandé de vérifier les données. Il est conseillé de suivre immédiatement votre commande de lecture avec : display(df)
Cela confirme que les données ont bien été chargées en mémoire du cluster, que les en-têtes sont correctement placés et que les types de données semblent corrects. À ce stade, les données se trouvent dans un objet temporaire appelé df, et vous êtes prêt à commencer à les transformer.
1. Pourquoi utiliser le paramètre .option("inferSchema", "true") lors de la lecture d'un fichier CSV ?
2. Quelle commande permet d'importer une table existante du catalogue dans un DataFrame Python ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion