Tutoriel : Exécuter du code Python sur un compute Serverless
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 :
- Votre Workspace, environnement local et compute répondent aux exigences de Databricks Connect pour Python. Consultez les exigences d'utilisation de Databricks Connect.
- Le compute Serverless est activé dans votre Workspace. Voir Se connecter au compute Serverless.
- Vous avez Python 3.12 est installé.
- Vous avez un EDI installé, tel que Visual Studio Code.
- Vous avez le CLI Databricks installé sur votre machine locale. Consultez Installer ou mettre à jour la Databricks CLI.
É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.
-
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 exemplehttps://dbc-a1b2345c-d6e7.cloud.databricks.com.Bashdatabricks auth login --host <workspace-url> -
La CLI Databricks vous invite à enregistrer les informations que vous avez saisies en tant que profil de configuration Databricks. Appuyez sur
Enterpour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Databricks recommande d'utiliserDEFAULTcomme nom de profil. -
Dans votre navigateur web, suivez les instructions à l'écran pour vous connecter à votre Databricks Workspace.
Étape 2 : Créer un nouvel environnement virtuel Python
-
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
-
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 .
-
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 :Bashpython3.12 -m venv .venv -
Activez votre environnement virtuel :
Bash# Linux/Mac
source .venv/bin/activateBash# 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
-
Ajouter un nouveau fichier Python
main.pyà votre projet -
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 estDEFAULT.Pythonfrom databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
df = spark.read.table("samples.nyctaxi.trips")
df.show(5) -
Exécutez le code à l'aide de la commande suivante :
Bashpython3 main.pyCinq 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.
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é :
-
Créez un profil de configuration nommé
DEFAULTen suivant les instructions de l’ étape 1. -
Utilisez un éditeur de texte pour ouvrir le fichier
.databrickscfg, qui se trouve dans :-
Votre dossier de base utilisateur
$HOMEsur Unix, Linux ou macOS :~/.databrickscfg, ou -
Votre dossier
%USERPROFILE%(dossier personnel de l'utilisateur) sur Windows. Par exemple, pour macOS :Bashnano ~/.databrickscfg
-
-
Ajouter
serverless_compute_id = autoau profilDEFAULT:[DEFAULT]
host = https://my-workspace.cloud.databricks.com
auth_type = databricks-cli
serverless_compute_id = auto -
Enregistrez les modifications et quittez votre éditeur.
-
Modifiez votre code pour utiliser une session Spark générale et exécutez-le :
Pythonfrom databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
df = spark.read.table("samples.nyctaxi.trips")
df.show(5)Bashpython3 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.
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>