Python-bibliotheken binnen Notebook
Met notebook-scoped bibliotheken kunt u aangepaste Python-omgevingen maken, wijzigen, opslaan, hergebruiken en delen die specifiek zijn voor een notebook. Wanneer u een bibliotheek met notebookbereik installeert, hebben alleen het huidige notitieblok en alle taken die aan dat notitieblok zijn gekoppeld toegang tot die bibliotheek. Andere notebooks die aan hetzelfde cluster zijn gekoppeld, worden niet beïnvloed.
Bibliotheken met notebookbereik blijven niet behouden tussen sessies. U moet bibliotheken met notebookbereik opnieuw installeren aan het begin van elke sessie of wanneer het notebook is losgekoppeld van een cluster.
Databricks raadt u aan de %pip
magic-opdracht te gebruiken om Python-bibliotheken met notebookbereik te installeren.
U kunt in notebooks die zijn gepland als taken gebruiken %pip
. Als u de Python-omgeving in een Scala-, SQL- of R-notebook wilt beheren, gebruikt u de %python
magic-opdracht in combinatie met %pip
.
Mogelijk ondervindt u meer verkeer naar het stuurprogrammaknooppunt wanneer u werkt met bibliotheekinstallatie met notebookbereik. Zie Hoe groot moet het stuurprogrammaknooppunt zijn bij het werken met notebook-scoped bibliotheken?
Gebruik clusterbibliotheken om bibliotheken te installeren voor alle notebooks die aan een cluster zijn gekoppeld. Zie Clusterbibliotheken.
Zie Python-omgevingsbeheer voor een uitgebreid overzicht van beschikbare opties voor het installeren van Python-bibliotheken in Databricks.
Notitie
In Databricks Runtime 10.4 LTS en hieronder kunt u het (verouderde) Azure Databricks-bibliotheekhulpprogramma gebruiken. Het bibliotheekhulpprogramma wordt alleen ondersteund in Databricks Runtime, niet databricks Runtime ML. Zie bibliotheekhulpprogramma (dbutils.library) (verouderd).
Bibliotheken beheren met %pip
opdrachten
De %pip
opdracht is gelijk aan de pip-opdracht en ondersteunt dezelfde API. In de volgende secties ziet u voorbeelden van hoe u opdrachten kunt gebruiken %pip
om uw omgeving te beheren. Zie de pip-installatiedocumentatie en verwante pagina's voor meer informatie over het installeren van Python-pakketten metpip
.
Belangrijk
- Vanaf Databricks Runtime 13.0-opdrachten
%pip
wordt het Python-proces niet automatisch opnieuw opgestart. Als u een nieuw pakket installeert of een bestaand pakket bijwerkt, moet u mogelijk de nieuwe pakketten ziendbutils.library.restartPython()
. Zie Het Python-proces opnieuw opstarten in Azure Databricks. - In Databricks Runtime 12.2 LTS en hieronder wordt u aangeraden alle
%pip
opdrachten aan het begin van het notebook te plaatsen. De status van het notitieblok wordt opnieuw ingesteld na een%pip
opdracht waarmee de omgeving wordt gewijzigd. Als u Python-methoden of -variabelen in een notebook maakt en vervolgens opdrachten in een latere cel gebruikt%pip
, gaan de methoden of variabelen verloren. - Als u kernpakketten van Python (zoals IPython)
%pip
bijwerkt, wijzigt of verwijdert, werken sommige functies mogelijk niet meer zoals verwacht. Als u dergelijke problemen ondervindt, stelt u de omgeving opnieuw in door het notitieblok los te koppelen en opnieuw te koppelen of door het cluster opnieuw te starten.
Een bibliotheek installeren met %pip
%pip install matplotlib
Een Python-wielpakket installeren met %pip
%pip install /path/to/my_package.whl
Een bibliotheek verwijderen met %pip
Notitie
U kunt geen bibliotheek verwijderen die is opgenomen in de releaseversies en compatibiliteit van Databricks Runtime of een bibliotheek die is geïnstalleerd als een clusterbibliotheek. Als u een andere bibliotheekversie hebt geïnstalleerd dan de versie die is opgenomen in Databricks Runtime of de versie die op het cluster is geïnstalleerd, kunt u de bibliotheek herstellen naar de standaardversie in Databricks Runtime of de versie die op het cluster is geïnstalleerd, maar u kunt geen %pip
opdracht gebruiken %pip uninstall
om de versie van een bibliotheek die is opgenomen in Databricks Runtime te verwijderen of op het cluster te installeren.
%pip uninstall -y matplotlib
De -y
optie is vereist.
Een bibliotheek installeren vanuit een versiebeheersysteem met %pip
%pip install git+https://github.com/databricks/databricks-cli
U kunt parameters toevoegen aan de URL om bijvoorbeeld de versie of git-submap op te geven. Zie de VCS-ondersteuning voor meer informatie en voorbeelden van het gebruik van andere versiebeheersystemen.
Een privépakket installeren met referenties die worden beheerd door Databricks-geheimen met %pip
Pip ondersteunt het installeren van pakketten van privébronnen met basisverificatie, waaronder systemen voor privéversiebeheer en opslagplaatsen voor privépakketten, zoals Nexus en Artifactory. Geheimbeheer is beschikbaar via de Databricks Secrets-API, waarmee u verificatietokens en wachtwoorden kunt opslaan. Gebruik de DBUtils-API voor toegang tot geheimen vanuit uw notebook. Houd er rekening mee dat u kunt gebruiken $variables
in magic-opdrachten.
Als u een pakket wilt installeren vanuit een privéopslagplaats, geeft u de URL van de opslagplaats op met de --index-url
optie of %pip install
voegt u het toe aan het pip
configuratiebestand op ~/.pip/pip.conf
.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/
Op dezelfde manier kunt u geheimbeheer gebruiken met magic-opdrachten om privépakketten te installeren vanuit versiebeheersystemen.
token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>
Een pakket installeren vanuit DBFS met %pip
Belangrijk
Elke werkruimtegebruiker kan bestanden wijzigen die zijn opgeslagen in DBFS. Azure Databricks raadt u aan bestanden op te slaan in werkruimten of op Unity Catalog-volumes.
U kunt een %pip
privépakket installeren dat is opgeslagen op DBFS.
Wanneer u een bestand uploadt naar DBFS, wordt de naam van het bestand automatisch gewijzigd, waarbij spaties, punten en afbreekstreepjes worden vervangen door onderstrepingstekens. Voor Python-wielbestanden pip
moet u de naam van het bestand gebruiken perioden in de versie (bijvoorbeeld 0.1.0) en afbreekstreepjes in plaats van spaties of onderstrepingstekens, zodat deze bestandsnamen niet worden gewijzigd.
%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl
Een pakket installeren vanaf een volume met %pip
Belangrijk
Deze functie is beschikbaar als openbare preview.
Met Databricks Runtime 13.3 LTS en hoger kunt %pip
u een privépakket installeren dat is opgeslagen op een volume.
Wanneer u een bestand uploadt naar een volume, wordt de naam van het bestand automatisch gewijzigd, waarbij spaties, punten en afbreekstreepjes worden vervangen door onderstrepingstekens. Voor Python-wielbestanden pip
moet u de naam van het bestand gebruiken perioden in de versie (bijvoorbeeld 0.1.0) en afbreekstreepjes in plaats van spaties of onderstrepingstekens, zodat deze bestandsnamen niet worden gewijzigd.
%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl
Een pakket installeren dat is opgeslagen als een werkruimtebestand met %pip
Met Databricks Runtime 11.3 LTS en hoger kunt %pip
u een privépakket installeren dat is opgeslagen als een werkruimtebestand.
%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl
Bibliotheken opslaan in een vereistenbestand
%pip freeze > /Workspace/shared/prod_requirements.txt
Alle submappen in het bestandspad moeten al bestaan. Als u deze uitvoert %pip freeze > /Workspace/<new-directory>/requirements.txt
, mislukt de opdracht als de map /Workspace/<new-directory>
nog niet bestaat.
Een vereistenbestand gebruiken om bibliotheken te installeren
Een vereistenbestand bevat een lijst met pakketten die moeten worden geïnstalleerd met behulp van pip
. Een voorbeeld van het gebruik van een vereistenbestand is:
%pip install -r /Workspace/shared/prod_requirements.txt
Zie De bestandsindeling Vereisten voor meer informatie over requirements.txt
bestanden.
Hoe groot moet het stuurprogrammaknooppunt zijn bij het werken met bibliotheken met notebookbereik?
Als u notebookbibliotheken gebruikt, kan dit leiden tot meer verkeer naar het stuurprogrammaknooppunt, omdat het werkt om de omgeving consistent te houden tussen uitvoerknooppunten.
Wanneer u een cluster met 10 of meer knooppunten gebruikt, raadt Databricks deze specificaties aan als minimumvereiste voor het stuurprogrammaknooppunt:
- Gebruik Standard_DS5_v2 voor een CPU-cluster van 100 knooppunten.
- Gebruik Standard_NC12 voor een GPU-cluster met 10 knooppunten.
Gebruik voor grotere clusters een groter stuurprogrammaknooppunt.
Kan ik gebruiken %sh pip
, !pip
of pip
? Wat is het verschil?
%sh
en !
voer een shell-opdracht uit in een notebook; het eerste is een Databricks-hulp-magic-opdracht terwijl de laatste een functie van IPython is. pip
is een afkorting voor %pip
wanneer automagic is ingeschakeld. Dit is de standaardinstelling in Azure Databricks Python-notebooks.
In Databricks Runtime 11.3 LTS en hoger %pip
%sh pip
!pip
installeert u een bibliotheek als een Python-bibliotheek met notebookbereik. In Databricks Runtime 10.4 LTS en hieronder wordt u aangeraden alleen %pip
bibliotheken met notebookbereik te gebruiken of pip
te installeren. Het gedrag van %sh pip
en !pip
is niet consistent in Databricks Runtime 10.4 LTS en lager.
Bekende problemen
- In Databricks Runtime 9.1 LTS zijn notebookbibliotheken niet compatibel met batchstreamingtaken. Databricks raadt aan om in plaats daarvan clusterbibliotheken of de IPython-kernel te gebruiken.