Installer les dépendances de notebook
Vous pouvez installer les dépendances Python pour les notebooks serverless à l’aide du panneau latéral Environnement. Ce panneau est un emplacement unique qui permet de modifier, d’afficher et d’exporter les exigences de bibliothèque d’un notebook. Ces dépendances peuvent être ajoutées à l’aide d’un environnement de base ou individuellement.
Pour les tâches non liées à un notebook, consultez la section Configurer des environnements et des dépendances pour les tâches non-notebook.
Important
N’installez pas PySpark ou toute bibliothèque qui installe PySpark en tant que dépendance sur vos notebooks serverless. Si vous l’effectuez, votre session stoppera et entraînera une erreur. Si cela se produit, supprimez la bibliothèque et réinitialisez votre environnement.
Configurer un environnement de base
Un environnement de base est un fichier YAML stocké en tant que fichier d’espace de travail ou sur un volume Unity Catalog qui spécifie des dépendances d’environnement supplémentaires. Les environnements de base peuvent être partagés entre les notebooks. Pour configurer un environnement de base :
Créez un fichier YAML qui définit les paramètres d’un environnement virtuel Python. L’exemple YAML suivant, basé sur la spécification de l’environnement des projets MLflow, définit un environnement de base avec quelques dépendances de bibliothèque :
client: "1" dependencies: - --index-url https://pypi.org/simple - -r "/Workspace/Shared/requirements.txt" - my-library==6.1 - "/Workspace/Shared/Path/To/simplejson-3.19.3-py3-none-any.whl" - git+https://github.com/databricks/databricks-cli
Chargez le fichier YAML en tant que fichier d’espace de travail ou sur un volume Unity Catalog. Consultez Importer un fichier ou Charger des fichiers sur un volume Unity Catalog.
À droite du notebook, cliquez sur le bouton
pour développer le panneau latéral Environment. Ce bouton s’affiche uniquement lorsqu’un notebook est connecté au calcul serverless.
Dans le champ Base Environment, entrez le chemin d’accès au fichier YAML chargé, ou accédez-y et sélectionnez-le.
Cliquez sur Appliquer. Cela installe les dépendances dans l’environnement virtuel du notebook et redémarre le processus Python.
Les utilisateurs peuvent remplacer les dépendances spécifiées dans l’environnement de base en installant des dépendances individuellement.
Configurer l’environnement de notebook
Vous pouvez également installer des dépendances sur un notebook relié à une infrastructure de calcul sans serveur en utilisant le panneau latéral Environment :
- À droite du notebook, cliquez sur le bouton
pour développer le panneau latéral Environment. Ce bouton s’affiche uniquement lorsqu’un notebook est connecté au calcul serverless.
- Sélectionnez la version de l’environnement dans la liste déroulante Version de l’environnement. Consultez les Versions de l’environnement serverless. Databricks recommande de choisir la dernière version pour obtenir les fonctionnalités de notebook les plus récentes.
- Dans la section Dependencies, cliquez sur Add Dependency et entrez le chemin d’accès à la dépendance de bibliothèque dans le champ. Vous pouvez spécifier une dépendance dans n’importe quel format valide dans un fichier requirements.txt.
- Cliquez sur Appliquer. Cela installe les dépendances dans l’environnement virtuel du notebook et redémarre le processus Python.
Remarque
Un travail utilisant le calcul serverless installe la spécification d’environnement du notebook avant d’exécuter le code du notebook. Cela signifie qu’il n’est pas nécessaire d’ajouter des dépendances lors de la planification des notebooks en tant que travaux. Voir Configurer des environnements et des dépendances.
Afficher les dépendances installées et les journaux pip
Pour afficher les dépendances installées, cliquez sur Installé dans le panneau Environnements d’un notebook. les journaux d’installation pip pour l’environnement de notebook sont également disponibles en cliquant sur Journaux pip en bas du panneau.
Réinitialiser l’environnement
Si votre notebook est connecté à un calcul serverless, Databricks met automatiquement en cache le contenu de l’environnement virtuel du notebook. Cela signifie que vous n’avez généralement pas besoin de réinstaller les dépendances Python spécifiées dans le panneau latéral Environment lorsque vous ouvrez un notebook existant, même s’il a été déconnecté en raison de l’inactivité.
La mise en cache de l’environnement virtuel Python s’applique également aux travaux. Lorsqu’un travail est exécuté, toute tâche du travail qui partage le même ensemble de dépendances qu’une tâche terminée dans cette exécution est plus rapide, car les dépendances requises sont déjà disponibles.
Remarque
Si vous modifiez l’implémentation d’un package Python personnalisé utilisé dans un travail sur serverless, vous devez également mettre à jour son numéro de version afin que les travaux puissent récupérer la dernière implémentation.
Pour effacer le cache de l’environnement et effectuer une nouvelle installation des dépendances spécifiées dans le panneau latéral Environnement d’un bloc-notes attaché au calcul sans serveur, cliquez sur la flèche en regard de Appliquer, puis cliquez sur Réinitialiser l’environnement.
Remarque
Réinitialisez l’environnement virtuel si vous installez des packages qui arrêtent ou modifient le notebook principal ou l’environnement Apache Spark. Le fait de détacher le notebook du calcul serverless et de le rattacher n’efface pas nécessairement l’ensemble du cache de l’environnement. La réinitialisation de l’environnement réinstalle toutes les dépendances spécifiées dans le panneau latéral Environment. Vérifiez donc que les packages incriminés sont supprimés avant la réinitialisation.
Configurer des environnements et des dépendances pour les tâches non-notebook
Pour d’autres types de tâches pris en charge, tels que le script Python, la roue Python ou les tâches dbt, un environnement par défaut inclut les bibliothèques Python installées. Pour afficher la liste des bibliothèques installées, consultez la section Bibliothèques Python installées de la version cliente que vous utilisez. Consultez les Versions de l’environnement serverless. Si une tâche nécessite une bibliothèque Python qui n’est pas installée, vous pouvez installer la bibliothèque à partir de fichiers d’espace de travail, de volumes de catalogue Unity ou de référentiels de packages publics. Pour ajouter une bibliothèque lorsque vous créez ou modifiez une tâche :
Dans le menu déroulant Environnement et bibliothèques, cliquez sur
en regard de l’environnement par défaut ou cliquez sur + Ajouter un nouvel environnement.
Sélectionnez la version de l’environnement dans la liste déroulante Version de l’environnement. Consultez les Versions de l’environnement serverless. Databricks recommande de choisir la dernière version pour obtenir les fonctionnalités les plus récentes.
Dans la boîte de dialogue Configurer l’environnement, cliquez sur + Ajouter une bibliothèque.
Sélectionnez le type de dépendance dans le menu déroulant sous Bibliothèques.
Dans la zone de texte Chemin d’accès au fichier, entrez le chemin d’accès à la bibliothèque.
Pour une roue Python dans un fichier d’espace de travail, le chemin d’accès doit être absolu et commencer par
/Workspace/
.Pour une roue Python dans un volume Unity Catalog, le chemin d’accès doit être
/Volumes/<catalog>/<schema>/<volume>/<path>.whl
.Pour un fichier
requirements.txt
, sélectionnez PyPi et entrez-r /path/to/requirements.txt
.
- Cliquez sur Confirmer ou + Ajouter une bibliothèque pour ajouter une autre bibliothèque.
- Si vous ajoutez une tâche, cliquez sur Créer une tâche. Si vous modifiez une tâche, cliquez sur Enregistrer la tâche.
Configurer les référentiels de package Python par défaut
Les administrateurs peuvent configurer des dépôts de paquets privés ou authentifiés dans des espaces de travail comme configuration pip par défaut pour les notebooks sans serveur et les travaux sans serveur. Cela permet aux utilisateurs d’installer des packages à partir de référentiels Python internes sans définir explicitement index-url
ou extra-index-url
. Toutefois, si ces valeurs sont spécifiées dans le code ou dans un bloc-notes, elles sont prioritaires sur les valeurs par défaut de l’espace de travail.
Cette configuration utilise les secrets Databricks pour stocker et gérer en toute sécurité les URLs et les identifiants du référentiel. Les administrateurs peuvent configurer le système à l’aide de la page des paramètres d’administration de l’espace de travail ou à l’aide d’une étendue secrète prédéfinie et des commandes de secrets de l'interface CLI de Databricks ou de l’API REST.
Configuration à l’aide de la page des paramètres d’administration de l’espace de travail
Les administrateurs d’espace de travail peuvent ajouter ou supprimer les référentiels de package Python par défaut à l’aide de la page des paramètres d’administration de l’espace de travail.
- En tant qu’administrateur d’espace de travail, connectez-vous à l’espace de travail Databricks.
- Cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail Databricks, puis sélectionnez Paramètres.
- Cliquez sur l’onglet Calcul.
- À côté de Dépôts de paquets par défaut, cliquez sur Gérer.
- (Facultatif) Ajoutez ou supprimez une URL d’index, des URL d’index supplémentaires ou un certificat SSL personnalisé.
- Cliquez sur Enregistrer pour enregistrer les modifications.
Remarque
Les modifications ou suppressions apportées aux secrets sont appliquées après avoir rattaché le calcul serverless aux bloc-notes ou réexécuté les tâches serverless.
Configurer à l’aide de l’interface CLI Secrets ou de l’API REST
Pour configurer les référentiels de packages Python par défaut à l’aide de l’interface CLI ou de l’API REST, créez une étendue de secret prédéfinie et configurez les autorisations d’accès, puis ajoutez les secrets du référentiel de package.
Nom de l’étendue du secret prédéfini
Les administrateurs d’espace de travail peuvent définir des URL d’index pip par défaut ou des URL d’index supplémentaires, ainsi que des jetons d’authentification et des secrets dans une étendue de secret désignée sous des clés prédéfinies :
- Nom de l’étendue de secrets :
databricks-package-management
- Clé secrète pour l’URL d’index :
pip-index-url
- Clé secrète pour l’URL d’extra-index :
pip-extra-index-urls
- Clé secrète pour le contenu de certification SSL :
pip-cert
Créer l’étendue du secret
Une zone secrète peut être créée à l'aide de la CLI Databricks commandes secrets ou de l'API REST . Après avoir créé l’étendue du secret, configurez les listes de contrôle d’accès pour accorder à tous les utilisateurs de l’espace de travail un accès en lecture. Cela garantit que le référentiel reste sécurisé et ne peut pas être modifié par des utilisateurs individuels. L’étendue du secret doit utiliser le nom d’étendue du secret prédéfini databricks-package-management
.
databricks secrets create-scope databricks-package-management
databricks secrets put-acl databricks-package-management admins MANAGE
databricks secrets put-acl databricks-package-management users READ
Ajouter les secrets du référentiel de package Python
Ajoutez les détails du référentiel de package Python à l’aide des noms de clés secrètes prédéfinis, avec les trois champs facultatifs.
# Add index URL.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-index-url", "string_value":"<index-url-value>"}'
# Add extra index URLs. If you have multiple extra index URLs, separate them using white space.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-extra-index-urls", "string_value":"<extra-index-url-1 extra-index-url-2>"}'
# Add cert content. If you want to pip configure a custom SSL certificate, put the cert file content here.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-cert", "string_value":"<cert-content>"}'
Modifier ou supprimer des secrets de référentiel PyPI privés
Pour modifier les secrets du référentiel PyPI, utilisez la commande put-secret
. Pour supprimer les secrets du référentiel PyPI, utilisez delete-secret
comme indiqué ci-dessous :
# delete secret
databricks secrets delete-secret databricks-package-management pip-index-url
databricks secrets delete-secret databricks-package-management pip-extra-index-urls
databricks secrets delete-secret databricks-package-management pip-cert
# delete scope
databricks secrets delete-scope databricks-package-management