Aller au contenu principal

Tutoriel : Exécuter du code Python sur un compute Serverless

remarque

Cet article s'applique à Databricks Connect 15.4 LTS et aux versions ultérieures.

Cet article décrit comment créer un projet dans votre IDE, configurer votre environnement virtuel, installer Databricks Connect pour Python et exécuter du code sur le compute serverless dans votre Databricks workspace.

Ce tutoriel utilise Python 3.12 et Databricks Connect 17.3 LTS. Pour utiliser d'autres versions de Python de Databricks Connect, elles doivent être compatibles. Consultez la matrice de support des versions.

Exigences

Pour suivre ce didacticiel, les exigences suivantes doivent être remplies :

Étape 1 : Configurer l’authentification Databricks

Ce tutoriel utilise l'authentification OAuth utilisateur-machine (U2M) de Databricks et un profil de configuration Databricks pour vous authentifier auprès de votre workspace Databricks.

  1. Utilisez la CLI Databricks pour initialiser la gestion des jetons OAuth localement en exécutant la commande suivante pour chaque workspace cible. Dans la commande suivante, remplacez <workspace-url> par l’URL de l’instance de votre workspace Databricks, par exemple https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    Bash
    databricks auth login --host <workspace-url>
  2. La CLI Databricks vous invite à enregistrer les informations que vous avez saisies en tant que profil de configuration Databricks. Appuyez sur Enter pour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Databricks recommande d'utiliser DEFAULT comme nom de profil.

  3. Dans votre navigateur web, suivez les instructions à l'écran pour vous connecter à votre Databricks Workspace.

Étape 2 : Créer un nouvel environnement virtuel Python

  1. Créez votre dossier de projet et ouvrez-le dans votre IDE. Par exemple, dans le menu principal de Visual Studio Code, cliquez sur Fichier > Ouvrir le dossier > Ouvrir

  2. Ouvrez une fenêtre de terminal à la racine du dossier du projet. Par exemple, dans le menu principal de Visual Studio Code, cliquez sur Affichage > Terminal .

  3. Créez un environnement virtuel pour le projet appelé venv à la racine du dossier du projet en exécutant la commande suivante dans le terminal :

    Bash
    python3.12 -m venv .venv
  4. Activez votre environnement virtuel :

    Bash
    # Linux/Mac
    source .venv/bin/activate
    Bash
    # Windows
    .venv\Scripts\activate

Étape 3 : Installer Databricks Connect

Installer Databricks Connect. Pour obtenir des informations sur les dernières versions publiées de Databricks Connect, consultez les notes de version de Databricks Connect.

pip install "databricks-connect==17.3.*"

Étape 4 : Ajoutez du code et exécutez

  1. Ajouter un nouveau fichier Python main.py à votre projet

  2. Saisissez le code suivant dans le fichier, en remplaçant l’espace réservé <profile-name> par le nom de votre profil de configuration de l’étape 1, puis enregistrez le fichier. Le nom du profil de configuration par default est DEFAULT.

    Python
    from databricks.connect import DatabricksSession

    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()

    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
  3. Exécutez le code à l'aide de la commande suivante :

    Bash
    python3 main.py

    Cinq lignes de la table sont renvoyées :

    Output
    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45| 2016-02-16 22:59:25| 5.35| 18.5| 10003| 11238|
    | 2016-02-05 16:06:44| 2016-02-05 16:26:03| 6.5| 21.5| 10282| 10001|
    | 2016-02-08 07:39:25| 2016-02-08 07:44:14| 0.9| 5.5| 10119| 10003|
    | 2016-02-29 22:25:33| 2016-02-29 22:38:09| 3.5| 13.5| 10001| 11222|
    | 2016-02-03 17:21:02| 2016-02-03 17:23:24| 0.3| 3.5| 10028| 10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+

Vous avez exécuté avec succès votre première query sur le compute Serverless Databricks à l'aide de Databricks Connect depuis votre IDE.

Étape 5 : Rendre votre code prêt pour la production

Pour les scénarios de production, il est important d'éviter d'utiliser les spécifications de compute dans le générateur de session Spark. Par exemple, si vous déployez votre code sur un cluster classique : Standard ou Dedicated à l'aide de l'API . serverless() dans votre générateur de session Spark, une nouvelle session Spark Serverless est créée en utilisant le cluster classique comme client.

Pour rendre votre code flexible et prêt pour la production, la session Spark ne devrait pas contenir de parameters.

Python
spark = DatabricksSession.builder.getOrCreate()

Cependant, lorsque ce code est exécuté sur Databricks, la session Spark globale par default du compute Databricks est utilisée.

Pour activer le serverless compute dans votre IDE, utilisez le profil de configuration par default, qui est sélectionné par le DatabricksSession.builder lorsqu'aucun paramètre n'est spécifié :

  1. Créez un profil de configuration nommé DEFAULT en suivant les instructions de l’ étape 1.

  2. Utilisez un éditeur de texte pour ouvrir le fichier .databrickscfg, qui se trouve dans :

    • Votre dossier de base utilisateur $HOME sur Unix, Linux ou macOS : ~/.databrickscfg, ou

    • Votre dossier %USERPROFILE% (dossier personnel de l'utilisateur) sur Windows. Par exemple, pour macOS :

      Bash
      nano ~/.databrickscfg
  3. Ajouter serverless_compute_id = auto au profil DEFAULT :

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com
    auth_type = databricks-cli
    serverless_compute_id = auto
  4. Enregistrez les modifications et quittez votre éditeur.

  5. Modifiez votre code pour utiliser une session Spark générale et exécutez-le :

    Python
    from databricks.connect import DatabricksSession

    spark = DatabricksSession.builder.getOrCreate()

    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    Bash
    python3 main.py

Vous avez exécuté avec succès votre code prêt pour la production sur le compute serverless Databricks à l’aide de Databricks Connect depuis votre IDE, en utilisant le profil de configuration DEFAULT.

astuce

Vous pouvez également utiliser des variables d'environnement pour définir la connexion à un compute Databricks spécifique :

  • Serverless: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Classique : DATABRICKS_CLUSTER_ID=<your_cluster_id>