Tutoriel : Importer et visualiser des données CSV à partir d'un Notebook
Ce tutoriel vous guide dans l'utilisation d'un Notebook Databricks pour importer des données à partir d'un fichier CSV contenant des données de prénoms de bébés de health.data.ny.gov dans votre volume Unity Catalog en utilisant Python, Scala et R. Vous apprenez également à modifier un nom de colonne, à visualiser les données et à enregistrer dans une table.
Si vous utilisez Databricks Free Edition, sélectionnez l'onglet Python pour tous les exemples de code de ce tutoriel. Free Edition ne prend pas en charge R ou Scala. De plus, Free Edition restreint l’accès Internet sortant, vous devez donc upload le fichier CSV via l’interface utilisateur du Workspace au lieu de le download avec du code. Voir l'étape 3 pour des instructions détaillées.
Exigences
Pour effectuer les tâches de cet article, vous devez satisfaire aux exigences suivantes :
- Votre workspace doit avoir Unity Catalog activé. Pour toute information sur la prise en main de Unity Catalog, consultez Se familiariser avec Unity Catalog. Les Workspaces Databricks Free Edition et d’Essai gratuit ont Unity Catalog activé par default.
- Vous devez disposer du privilège
WRITE VOLUMEsur un volume, du privilègeUSE SCHEMAsur le schéma parent et du privilègeUSE CATALOGsur le catalogue parent. Les utilisateurs de l'édition Free disposent de ces privilèges sur le catalogue Workspace et le schémadefaultpar default. - Vous devez avoir la permission d'utiliser une ressource de compute existante ou de créer une nouvelle ressource de compute. Voir Compute ou contactez votre administrateur Databricks.
Pour un notebook complet pour cet article, veuillez consulter Importer et visualiser des notebooks de données.
Étape 1 : Créer un nouveau Notebook
Pour créer un Notebook dans votre Workspace, cliquez sur Nouveau dans la barre latérale, puis cliquez sur Notebook . Un notebook vierge s'ouvre dans le Workspace.
Pour en savoir plus sur la création et la gestion des Notebooks, veuillez consulter Gérer les Notebooks Databricks.
Étape 2 : Définir les variables
Au cours de cette étape, vous définissez les variables à utiliser dans le notebook d'exemple que vous créez dans cet article. Vous avez besoin des noms d'un catalogue, d'un schéma et d'un volume Unity Catalog.
Si vous ne connaissez pas les noms de votre catalogue et de votre schéma, cliquez sur Catalogue dans le panneau latéral. Le catalogue de Workspace partage un nom avec votre Workspace et est listé dans le panneau latéral. Développez-le pour voir les schémas disponibles. Les utilisateurs de Free Edition et d'essai gratuit peuvent utiliser le catalogue Workspace et le schéma
default.
Si vous n’avez pas de volume, créez-en un en exécutant la commande suivante dans une cellule de notebook (remplacez <catalog_name> et <schema_name> par vos valeurs) :
CREATE VOLUME IF NOT EXISTS <catalog_name>.<schema_name>.my_volume
- Copiez et collez le code suivant dans la nouvelle cellule de notebook vide. Remplacez
<catalog-name>,<schema-name>et<volume-name>par les noms de catalogue, de schéma et de volume pour un volume Unity Catalog. Vous pouvez éventuellement remplacer la valeurtable_namepar le nom de table de votre choix. Vous enregistrerez les données de prénoms de bébé dans ce tableau plus tard dans cet article. - Appuyez sur
Shift+Enterpour exécuter la cellule et créer une nouvelle cellule vide.
- Python
- Scala
- R
catalog = "<catalog_name>"
schema = "<schema_name>"
volume = "<volume_name>"
download_url = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
file_name = "baby_names.csv"
table_name = "baby_names"
path_volume = "/Volumes/" + catalog + "/" + schema + "/" + volume
path_table = catalog + "." + schema
print(path_table) # Show the complete path
print(path_volume) # Show the complete path
val catalog = "<catalog_name>"
val schema = "<schema_name>"
val volume = "<volume_name>"
val downloadUrl = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
val fileName = "baby_names.csv"
val tableName = "baby_names"
val pathVolume = s"/Volumes/${catalog}/${schema}/${volume}"
val pathTable = s"${catalog}.${schema}"
print(pathVolume) // Show the complete path
print(pathTable) // Show the complete path
catalog <- "<catalog_name>"
schema <- "<schema_name>"
volume <- "<volume_name>"
download_url <- "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
file_name <- "baby_names.csv"
table_name <- "baby_names"
path_volume <- paste("/Volumes/", catalog, "/", schema, "/", volume, sep = "")
path_table <- paste(catalog, ".", schema, sep = "")
print(path_volume) # Show the complete path
print(path_table) # Show the complete path
Étape 3 : Importer un fichier CSV
Dans cette étape, vous importez un fichier CSV contenant des données de noms de bébé depuis health.data.ny.gov dans votre volume Unity Catalog. Choisissez l'une des méthodes suivantes :
- Upload using the Workspace UI — Utilisez cette méthode si vous utilisez Databricks Free Edition, ou si le download de code dans l'option B échoue avec une erreur réseau. Free Edition et les autres environnements de compute Serverless restreignent l'accès Internet sortant, vous devez donc upload le fichier depuis votre machine locale.
- download using code — Utilisez cette méthode si votre environnement de compute a un accès Internet sortant.
Option A : Upload via l'interface utilisateur du Workspace
- Sur votre machine locale, ouvrez health.data.ny.gov/api/views/jxy9-yhdk/rows.csv dans votre navigateur. Le fichier se télécharge sur votre ordinateur en tant que
rows.csv. - Recherchez le fichier download sur votre ordinateur et renommez-le de
rows.csvenbaby_names.csv. Cela correspond à la variablefile_nameque vous avez définie à l’étape 2. - Retournez à votre Workspace Databricks. Dans la barre latérale, cliquez sur
Nouveau > Ajouter ou upload de données .
- Cliquez sur upload les fichiers vers un volume .
- Cliquez sur **Parcourir** et sélectionnez le
baby_names.csvfichier, ou glissez-déposez-le dans la zone d'upload. - Sous **Volume de destination**, sélectionnez le volume que vous avez spécifié à l'étape 2.
- Une fois l’upload terminé, revenez à votre Notebook et passez à l’ étape 4.
Pour plus de détails sur l'upload de fichiers, consultez Utiliser des fichiers dans les volumes Unity Catalog.
Option B : Download avec le code
- Copiez et collez le code suivant dans la nouvelle cellule de notebook vide. Ce code copie le fichier
rows.csvde health.data.ny.gov dans votre volume Unity Catalog à l'aide de la commande Databricks dbutils. - Appuyez sur
Shift+Enterpour exécuter la cellule, puis passez à la cellule suivante.
- Python
- Scala
- R
dbutils.fs.cp(f"{download_url}", f"{path_volume}" + "/" + f"{file_name}")
dbutils.fs.cp(downloadUrl, s"${pathVolume}/${fileName}")
dbutils.fs.cp(download_url, paste(path_volume, "/", file_name, sep = ""))
Étape 4 : Charger les données CSV dans un DataFrame
Dans cette étape, vous créez un DataFrame nommé df à partir du fichier CSV que vous avez précédemment chargé dans votre volume Unity Catalog en utilisant la méthode spark.read.csv.
- Copiez et collez le code suivant dans la nouvelle cellule de notebook vide. Ce code charge les données de noms de bébé dans le DataFrame
dfà partir du fichier CSV. - Appuyez sur
Shift+Enterpour exécuter la cellule, puis passez à la cellule suivante.
- Python
- Scala
- R
df = spark.read.csv(f"{path_volume}/{file_name}",
header=True,
inferSchema=True,
sep=",")
val df = spark.read
.option("header", "true")
.option("inferSchema", "true")
.option("delimiter", ",")
.csv(s"${pathVolume}/${fileName}")
# Load the SparkR package that is already preinstalled on the cluster.
library(SparkR)
df <- read.df(paste(path_volume, "/", file_name, sep=""),
source="csv",
header = TRUE,
inferSchema = TRUE,
delimiter = ",")
Vous pouvez charger des données à partir de nombreux formats de fichier pris en charge.
Étape 5 : Visualiser les données du Notebook
À cette étape, vous utilisez la méthode display() pour afficher le contenu du DataFrame dans un tableau du notebook, puis pour visualiser les données dans un graphique de nuage de mots du notebook.
- Copiez et collez le code suivant dans la nouvelle cellule de Notebook vide, puis cliquez sur Exécuter la cellule pour afficher les données dans un tableau.
- Python
- Scala
- R
display(df)
display(df)
display(df)
-
Examinez les résultats dans le tableau.
-
À côté de l'onglet tab , cliquez sur + , puis sur Visualisation .
-
Dans l'éditeur de visualisation, cliquez sur Type de visualisation , et vérifiez que Nuage de mots est sélectionné.
-
Dans la colonne Mots , vérifiez que
First Nameest sélectionné. -
Dans **Frequencies limit**, cliquez
35sur.
-
Cliquez sur Enregistrer .
Étape 6 : Enregistrer le DataFrame dans une table
Pour enregistrer votre DataFrame dans Unity Catalog, vous devez disposer de CREATE privilèges de table sur le catalogue et le schéma. Pour plus d'informations sur les autorisations dans Unity Catalog, consultez Privilèges et objets sécurisables dans Unity Catalog et Gérer les privilèges dans Unity Catalog.
- Copiez et collez le code suivant dans une cellule de Notebook vide. Ce code remplace un espace dans le nom de la colonne. Les caractères spéciaux, tels que les espaces, ne sont pas autorisés dans les noms de colonne. Ce code utilise la méthode
withColumnRenamed()d'Apache Spark.
- Python
- Scala
- R
df = df.withColumnRenamed("First Name", "First_Name")
df.printSchema
val dfRenamedColumn = df.withColumnRenamed("First Name", "First_Name")
// when modifying a DataFrame in Scala, you must assign it to a new variable
dfRenamedColumn.printSchema()
df <- withColumnRenamed(df, "First Name", "First_Name")
printSchema(df)
- Copiez et collez le code suivant dans une cellule de Notebook vide. Ce code enregistre le contenu du DataFrame dans une table dans Unity Catalog en utilisant la variable de nom de table que vous avez définie au start de cet article.
- Python
- Scala
- R
df.write.mode("overwrite").saveAsTable(f"{path_table}" + "." + f"{table_name}")
dfRenamedColumn.write.mode("overwrite").saveAsTable(s"${pathTable}.${tableName}")
saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
-
Pour vérifier que la table a été enregistrée, cliquez sur Catalogue dans la barre latérale gauche pour ouvrir l'interface utilisateur de l'Explorateur de catalogues. Ouvrez votre catalogue puis votre schéma pour vérifier que la table apparaît.
-
Cliquez sur votre table pour afficher le schéma de la table dans l'onglet Overview tab.
-
Cliquez sur Exemples de données pour afficher 100 lignes de données de la table.
Importer et visualiser des Notebooks de données
Utilisez l'un des Notebooks suivants pour effectuer les étapes de cet article. Remplacez <catalog-name>, <schema-name> et <volume-name> par les noms de catalogue, de schéma et de volume pour un volume Unity Catalog. Facultativement, remplacez la valeur table_name par un nom de table de votre choix.
- Python
- Scala
- R
Importer des données depuis un CSV à l'aide de Python
Importer des données depuis CSV en utilisant Scala
Importer des données à partir de CSV à l'aide de R
Étapes suivantes
- Pour en savoir plus sur les techniques d'analyse exploratoire des données (EDA), consultez Tutoriel : techniques d'EDA utilisant les Notebooks Databricks.
- Pour en savoir plus sur la création d'un pipeline ETL (extraction, transformation et chargement), consultez Didacticiel : Créer un pipeline ETL avec LakeFlow Pipelines et Didacticiel : Créer un pipeline ETL avec Apache Spark sur la plateforme Databricks