Utilitaires Databricks avec Databricks Connect pour Python
Cet article couvre Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.
Cet article décrit comment utiliser Databricks Utilities avec Databricks Connect pour Python. Databricks Connect vous permet de connecter les IDEs populaires, les serveurs de Notebook et les applications personnalisées aux clusters Databricks. See Databricks Connect.
Avant de commencer à utiliser Databricks Connect, vous devez configurer le client Databricks Connect.
Pour la version Scala de cet article, consultez Databricks Utilities avec Databricks Connect pour Scala.
Utilitaires Databricks disponibles
Vous utilisez Databricks Connect pour accéder aux utilitaires Databricks comme suit :
- Utilisez la variable
dbutilsde la classeWorkspaceClientpour accéder aux infrastructures publiques Databricks. La classeWorkspaceClientappartient au SDK Databricks pour Python et est incluse dans Databricks Connect. - Utilisez
dbutils.fspour accéder à l'infrastructure publique fs des Databricks Utilities. - Utilisez
dbutils.secretspour accéder à l'utilitaire secrets des utilitaires Databricks. - Utilisez
dbutils.widgetspour créer et lire des widgets locaux, afin que le code écrit pour les infrastructures publiques widgets de Databricks s’exécute localement. Ces widgets n’existent que dans votre session locale et ne peuvent pas récupérer les parameters de notebook ou de tâche de job distants. La lecture d’un widget que vous n’avez pas créé localement déclenche une erreurKeyErrorou renvoie la valeur default si vous utilisezgetArgument. - Utilisez
dbutils.jobs.taskValuespour déboguer localement le code écrit pour les infrastructures publiques jobs de Databricks. Les valeurs de tâche ne sont pas échangées avec les exécutions de job distantes :setne fait rien etgetrenvoie la valeur de son argumentdebugValue, ou génère une erreur si vous ne passez pasdebugValue. Pour définir ou obtenir des valeurs de tâche pour des tâches en aval, exécutez votre code en tant que tâche de job.
Aucune fonctionnalité Databricks Utilities autre que les infrastructures publiques précédentes n’est disponible via dbutils.
Vous pouvez également utiliser le SDK Databricks pour Python inclus pour accéder à n'importe quelle API REST Databricks disponible, et pas seulement aux API d'infrastructures publiques Databricks précédentes. Voir le SDK Databricks sur PyPI.
Initialiser le client de l'espace de travail
Pour initialiser WorkspaceClient, vous devez fournir suffisamment d'informations pour authentifier un SDK Databricks auprès du Workspace. Par exemple, vous pouvez :
-
Codez en dur l'URL du workspace et votre jeton d'accès directement dans votre code, puis initialisez
WorkspaceClientcomme suit. Bien que cette option soit prise en charge, Databricks **ne recommande pas** cette option, car elle peut exposer des informations sensibles, telles que des jetons d'accès, si votre code est enregistré dans un système de contrôle de version ou partagé d'une autre manière :Pythonfrom databricks.sdk import WorkspaceClientw = WorkspaceClient(host = f"https://{retrieve_workspace_instance_name()}",token = retrieve_token()) -
Créez ou spécifiez un profil de configuration qui contient les champs
hostettoken, puis initialisez leWorkspaceClientcomme suit :Pythonfrom databricks.sdk import WorkspaceClientw = WorkspaceClient(profile = "<profile-name>") -
Définissez les variables d'environnement
DATABRICKS_HOSTetDATABRICKS_TOKENde la même manière que vous les avez définies pour Databricks Connect, puis initialisezWorkspaceClientcomme suit :Pythonfrom databricks.sdk import WorkspaceClientw = WorkspaceClient()
Le Databricks SDK pour Python ne reconnaît pas la variable d'environnement SPARK_REMOTE pour Databricks Connect.
Pour plus d'options d'authentification Databricks pour le SDK Databricks pour Python, ainsi que pour savoir comment initialiser AccountClient au sein des SDK Databricks afin d'accéder aux API REST Databricks disponibles au niveau du compte au lieu du niveau du Workspace, consultez databricks-sdk sur PyPI.
Exemple : Créez un fichier dans un volume
L'exemple suivant montre comment utiliser le SDK Databricks pour Python afin d'automatiser les infrastructures publiques Databricks. Cet exemple crée un fichier nommé zzz_hello.txt dans le chemin d'un volume Unity Catalog au sein du Workspace, lit les données du fichier, puis supprime le fichier. Cet exemple suppose que les variables d'environnement DATABRICKS_HOST et DATABRICKS_TOKEN ont déjà été définies :
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs
fs.put(
file = file_path,
contents = file_data,
overwrite = True
)
print(fs.head(file_path))
fs.rm(file_path)
Voir aussi Interaction avec dbutils dans la documentation du Databricks SDK pour Python.