Créer votre premier workflow avec un travail Azure Databricks

Cet article présente un travail Azure Databricks qui orchestre des tâches afin de lire et de traiter un exemple de jeu de données. Dans ce guide de démarrage rapide, vous allez :

  1. Créez un nouveau notebook et ajoutez du code pour récupérer un exemple de jeu de données contenant des noms de bébé populaires par année.
  2. Enregistrez le jeu de données d’exemple dans Unity Catalog.
  3. Créez un nouveau notebook et ajoutez du code pour lire le jeu de données depuis Unity Catalog, le filtrer par année et afficher les résultats.
  4. Créez un nouveau travail et configurez deux tâches à l’aide des notebooks.
  5. Exécutez le travail et affichez les résultats.

Spécifications

Si votre espace de travail est compatible avec Unity Catalog et que l’option Flux de travail serverless est activé, la tâche est exécutée par défaut sur un calcul serverless. Vous n’avez pas besoin d’autorisation de création de cluster pour exécuter votre tâche avec le calcul serverless.

Dans le cas contraire, vous devez disposer d’une autorisation de création de clusterpour créer un calcul de tâches ou des autorisations pour des ressources de calcul polyvalentes.

Vous devez disposer d’un volume dans Unity Catalog. Cet article utilise un volume nommé my-volume dans un schéma nommé default dans un catalogue nommé main. Vous devez également disposer des autorisations suivantes dans Unity Catalog :

  • READ VOLUME et WRITE VOLUME, ou ALL PRIVILEGES, pour le volume my-volume.
  • USE SCHEMA ou ALL PRIVILEGES pour le schéma default.
  • USE CATALOG ou ALL PRIVILEGES pour le catalogue main.

Pour définir ces autorisations, contactez votre administrateur Databricks ou consultez Privilèges et objets sécurisables dans Unity Catalog.

Créer les notebooks

Récupérer et enregistrer des données

Pour créer un notebook afin de récupérer l’exemple de jeu de données et le sauvegarder dans Unity Catalog :

  1. Accédez à la page d’arrivée Azure Databricks, cliquez sur Icône NouveauNouveau dans la barre latéral, puis sélectionnez Notebook. Databricks crée et ouvre un notebook vide dans votre dossier par défaut. La langage par défaut est celui que vous avez utilisé en dernier, et le notebook est automatiquement attaché à la ressource de calcul que vous avez utilisée en dernier.

  2. Si nécessaire, choisissez Python comme langage par défaut.

  3. Copiez le code Python suivant et collez-le dans la première cellule du notebook.

    import requests
    
    response = requests.get('https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
    

Lire et afficher des données filtrées

Pour créer un notebook afin de lire et de présenter les données à filtrer

  1. Accédez à la page d’arrivée Azure Databricks, cliquez sur Icône NouveauNouveau dans la barre latéral, puis sélectionnez Notebook. Databricks crée et ouvre un notebook vide dans votre dossier par défaut. La langage par défaut est celui que vous avez utilisé en dernier, et le notebook est automatiquement attaché à la ressource de calcul que vous avez utilisée en dernier.

  2. Si nécessaire, choisissez Python comme langage par défaut.

  3. Copiez le code Python suivant et collez-le dans la première cellule du notebook.

    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
    

Créer un travail

  1. Cliquez sur Icône TravauxWorkflows dans la barre latérale.

  2. Cliquez sur Bouton Créer un travail.

    L’onglet Tasks s’affiche avec la boîte de dialogue de création de tâche.

    Boîte de dialogue Créer une première tâche

  3. Remplacez Add a name for your job… (Ajoutez un nom pour votre travail) par le nom de votre travail.

  4. Dans le champ Task name, entrez un nom pour la tâche, par exemple récupérer-noms-bébés.

  5. Dans le menu déroulant Type, sélectionnez Notebook .

  6. Utilisez l’Explorateur de fichiers pour rechercher le premier notebook que vous avez créé, cliquez sur le nom du notebook, puis cliquez sur Confirm.

  7. Cliquez sur Create task.

  8. Cliquez sur Bouton d’ajout de tâche sous la tâche que vous venez de créer pour ajouter une autre tâche.

  9. Dans le champ Task name, entrez un nom pour la tâche, par exemple filtrer-noms-bébés.

  10. Dans le menu déroulant Type, sélectionnez Notebook .

  11. Utilisez l’Explorateur de fichiers pour rechercher le deuxième notebook que vous avez créé, cliquez sur le nom du notebook, puis cliquez sur Confirm.

  12. Cliquez sur Add sous Parameters. Dans le champ Key, entrez year. Dans le champ Value, entrez 2014.

  13. Cliquez sur Create task.

Exécuter le travail

Pour exécuter le travail immédiatement, cliquez sur Bouton Exécuter maintenant en haut à droite. Vous pouvez également exécuter le travail en cliquant sur l’onglet Runs, puis sur Run Now dans la table Active Runs.

Afficher les détails de l’exécution

  1. Cliquez sur l’onglet Runs, puis sur le lien pour l’exécution dans la table Active Runs ou la table Completed Runs (past 60 days).

  2. Cliquez sur l’une des tâches pour voir la sortie et les détails. Par exemple, cliquez sur la tâche filtrer-noms-bébés pour voir la sortie et les détails d’exécution de la tâche de filtre :

    Affichage des résultats du filtrage des noms

Exécuter avec des paramètres différents

Pour réexécuter le travail et filtrer les noms des bébés pour une autre année :

  1. Cliquez sur Chevron bleu vers le bas en regard de Run Now et sélectionnez Run Now with Different Parameters ou cliquez sur Run Now with Different Parameters dans la table Active Runs.
  2. Dans le champ Value, entrez 2015.
  3. Cliquez sur Exécuter.