Azure Databricks voor Python-ontwikkelaars
Deze sectie bevat een handleiding voor het ontwikkelen van notebooks en taken in Azure Databricks met behulp van de Python-taal, waaronder zelfstudies voor algemene werkstromen en taken, en koppelingen naar API's, bibliotheken en hulpprogramma's.
Ga als volgt aan de slag:
- Code importeren: importeer uw eigen code uit bestanden of Git-opslagplaatsen of probeer een zelfstudie die hieronder wordt vermeld. Databricks raadt u aan om te leren met behulp van interactieve Databricks Notebooks.
- Voer uw code uit op een cluster: maak een eigen cluster of zorg ervoor dat u gemachtigd bent om een gedeeld cluster te gebruiken. Koppel uw notebook aan het cluster en voer het notebook uit.
- Vervolgens kunt u het volgende doen:
- Werken met grotere gegevenssets met Apache Spark
- Visualisaties toevoegen
- Uw workload automatiseren als een taak
- Machine Learning gebruiken om uw gegevens te analyseren
- Ontwikkelen in IDE's
Zelfstudies
De onderstaande zelfstudies bevatten voorbeeldcode en notebooks voor meer informatie over algemene werkstromen. Zie Een notitieblok importeren voor instructies over het importeren van notebookvoorbeelden in uw werkruimte.
Data-engineering
- Zelfstudie: Gegevens laden en transformeren met Behulp van Apache Spark DataFrames biedt een overzicht voor meer informatie over Apache Spark DataFrames voor gegevensvoorbereiding en -analyse.
- Zelfstudie: Delta Lake.
- Zelfstudie: Uw eerste Delta Live Tables-pijplijn uitvoeren.
Gegevenswetenschap en machine learning
- Aan de slag met Apache Spark DataFrames voor gegevensvoorbereiding en -analyse: Zelfstudie: Gegevens laden en transformeren met Apache Spark DataFrames
- Zelfstudie: End-to-end ML-modellen in Azure Databricks. Zie zelfstudies voor meer voorbeelden: Aan de slag met AI en machine learning en de quickstart van de MLflow-handleiding voor Python.
- Met Mozaïek AutoML kunt u snel aan de slag met het ontwikkelen van machine learning-modellen op uw eigen gegevenssets. De glass box-benadering genereert notebooks met de volledige machine learning-werkstroom, die u kunt klonen, wijzigen en opnieuw uitvoeren.
- Levenscyclus van modellen beheren in Unity Catalog
- Zelfstudie: End-to-end ML-modellen in Azure Databricks
Fouten opsporen in Python-notebooks
In het voorbeeldnotebook ziet u hoe u het Python-foutopsporingsprogramma (pdb) gebruikt in Databricks-notebooks. Als u het Python-foutopsporingsprogramma wilt gebruiken, moet u Databricks Runtime 11.3 LTS of hoger uitvoeren.
Met Databricks Runtime 12.2 LTS en hoger kunt u variable Explorer gebruiken om de huidige waarde van Python-variabelen in de notebookgebruikersinterface bij te houden. U kunt Variable Explorer gebruiken om de waarden van Python-variabelen te observeren terwijl u onderbrekingspunten doorloopt.
Voorbeeldnotebook voor Python-foutopsporingsprogramma
Notitie
breakpoint()
wordt niet ondersteund in IPython en werkt dus niet in Databricks-notebooks. U kunt import pdb; pdb.set_trace()
in plaats van breakpoint()
.
Python-API's
Python-code die buiten Databricks wordt uitgevoerd, kan over het algemeen worden uitgevoerd in Databricks en omgekeerd. Als u bestaande code hebt, importeert u deze gewoon in Databricks om aan de slag te gaan. Zie Code beheren met notebooks en Databricks Git-mappen hieronder voor meer informatie.
Databricks kan zowel één machine als gedistribueerde Python-workloads uitvoeren. Voor computing met één machine kunt u Python-API's en -bibliotheken gebruiken zoals gebruikelijk; Pandas en scikit-learn werken bijvoorbeeld gewoon. Voor gedistribueerde Python-workloads biedt Databricks standaard twee populaire API's: PySpark en Pandas-API in Spark.
PySpark-API
PySpark is de officiële Python-API voor Apache Spark en combineert de kracht van Python en Apache Spark. PySpark is meer flexibiliteit dan de Pandas-API in Spark en biedt uitgebreide ondersteuning en functies voor data science en technische functionaliteit zoals Spark SQL, Structured Streaming, MLLib en GraphX.
pandas API in Spark
Notitie
Het opensource-project koalas raadt nu aan over te schakelen naar de Pandas-API in Spark. De Pandas-API in Spark is beschikbaar op clusters met Databricks Runtime 10.0 (EoS) en hoger. Voor clusters waarop Databricks Runtime 9.1 LTS en lager worden uitgevoerd, gebruikt u in plaats daarvan Koalas.
Pandas is een Python-pakket dat vaak wordt gebruikt door gegevenswetenschappers voor gegevensanalyse en -manipulatie. Pandas schaalt echter niet uit naar big data. Pandas-API in Spark vult deze kloof door pandas-equivalente API's te bieden die in Apache Spark werken. Deze opensource-API is een ideale keuze voor gegevenswetenschappers die bekend zijn met pandas, maar niet met Apache Spark.
Code beheren met notebooks en Databricks Git-mappen
Databricks-notebooks ondersteunen Python. Deze notebooks bieden functionaliteit die vergelijkbaar is met die van Jupyter, maar met toevoegingen zoals ingebouwde visualisaties met behulp van big data, Apache Spark-integraties voor foutopsporing en prestatiebewaking en MLflow-integraties voor het bijhouden van machine learning-experimenten. Ga aan de slag door een notebook te importeren. Zodra u toegang hebt tot een cluster, kunt u een notebook aan het cluster koppelen en het notebook uitvoeren.
Tip
Als u de status van uw notebook volledig opnieuw wilt instellen, kan het handig zijn om de iPython-kernel opnieuw op te starten. Voor Jupyter-gebruikers komt de optie 'kernel opnieuw opstarten' in Jupyter overeen met het loskoppelen en opnieuw koppelen van een notebook in Databricks. Als u de kernel opnieuw wilt starten in een Python-notebook, klikt u op de rekenkiezer in de notebookwerkbalk en beweegt u de muisaanwijzer over het gekoppelde cluster of SQL Warehouse in de lijst om een zijmenu weer te geven. Selecteer Loskoppelen en opnieuw koppelen. Hierdoor wordt het notebook losgekoppeld van uw cluster en wordt het opnieuw gekoppeld, waardoor het Python-proces opnieuw wordt gestart.
Met Databricks Git-mappen kunnen gebruikers notebooks en andere bestanden synchroniseren met Git-opslagplaatsen. Databricks Git-mappen helpen bij het maken van codeversies en samenwerking en het importeren van een volledige opslagplaats met code in Azure Databricks, het weergeven van eerdere notebookversies en het integreren met IDE-ontwikkeling. Ga aan de slag door een externe Git-opslagplaats te klonen. Vervolgens kunt u notebooks openen of maken met de kloon van de opslagplaats, het notebook koppelen aan een cluster en het notebook uitvoeren.
Clusters en bibliotheken
Azure Databricks Compute biedt rekenbeheer voor clusters van elke grootte: van clusters met één knooppunt tot grote clusters. U kunt clusterhardware en -bibliotheken aanpassen aan uw behoeften. Gegevenswetenschappers gaan over het algemeen aan de slag door een cluster te maken of een bestaand gedeeld cluster te gebruiken. Zodra u toegang hebt tot een cluster, kunt u een notebook aan het cluster koppelen of een taak uitvoeren op het cluster.
- Voor kleine workloads waarvoor slechts één knooppunt nodig is, kunnen gegevenswetenschappers rekenkracht van één knooppunt gebruiken voor kostenbesparingen.
- Zie Aanbevelingen voor compute-configuratie voor gedetailleerde tips
- Beheerders kunnen clusterbeleid instellen om het maken van clusters te vereenvoudigen en te begeleiden.
Azure Databricks-clusters maken gebruik van een Databricks Runtime, dat veel populaire bibliotheken standaard biedt, waaronder Apache Spark, Delta Lake, pandas en meer. U kunt ook aanvullende externe of aangepaste Python-bibliotheken installeren voor gebruik met notebooks en taken.
- Begin met de standaardbibliotheken in de releaseversies en compatibiliteit van Databricks Runtime. Databricks Runtime voor Machine Learning gebruiken voor machine learning-workloads. Zie de releaseversies en compatibiliteit van Databricks Runtime voor volledige lijsten met vooraf geïnstalleerde bibliotheken.
- Pas uw omgeving aan met behulp van Python-bibliotheken met notebookbereik, waarmee u uw notebook- of taakomgeving kunt wijzigen met bibliotheken uit PyPI of andere opslagplaatsen. De
%pip install my_library
magic-opdracht wordtmy_library
geïnstalleerd op alle knooppunten in uw momenteel gekoppelde cluster, maar heeft nog geen invloed op andere werkbelastingen op gedeelde clusters. - Installeer indien nodig niet-Python-bibliotheken als clusterbibliotheken .
- Zie Bibliotheken voor meer informatie.
Visualisaties
Azure Databricks Python-notebooks bieden ingebouwde ondersteuning voor veel typen visualisaties. U kunt ook verouderde visualisaties gebruiken.
U kunt ook gegevens visualiseren met behulp van bibliotheken van derden; sommige zijn vooraf geïnstalleerd in Databricks Runtime, maar u kunt ook aangepaste bibliotheken installeren. Populaire opties zijn onder andere:
Projecten
U kunt Python-workloads automatiseren als geplande of geactiveerde taken in Databricks. Taken kunnen notebooks, Python-scripts en Python wheel-bestanden uitvoeren.
- Taken maken en bijwerken met behulp van de Databricks-gebruikersinterface of de Databricks REST API.
- Met de Databricks Python SDK kunt u taken programmatisch maken, bewerken en verwijderen.
- De Databricks CLI biedt een handige opdrachtregelinterface voor het automatiseren van taken.
Tip
Als u een Python-script wilt plannen in plaats van een notebook, gebruikt u het spark_python_task
veld in tasks
de hoofdtekst van een taakaanvraag maken.
Machinelearning
Databricks ondersteunt een groot aantal machine learning-workloads (ML), waaronder traditionele ML op tabellaire gegevens, deep learning voor computer vision en verwerking van natuurlijke taal, aanbevelingssystemen, grafiekanalyses en meer. Zie AI en machine learning op Databricks voor algemene informatie over machine learning op Databricks.
Voor ML-algoritmen kunt u vooraf geïnstalleerde bibliotheken gebruiken in Databricks Runtime voor Machine Learning, waaronder populaire Python-hulpprogramma's zoals scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib en XGBoost. U kunt ook aangepaste bibliotheken installeren.
Voor machine learning-bewerkingen (MLOps) biedt Azure Databricks een beheerde service voor de opensource-bibliotheek MLflow. Met MLflow Tracking kunt u modelontwikkeling vastleggen en modellen opslaan in herbruikbare indelingen. U kunt het MLflow-modelregister gebruiken om de promotie van modellen naar productie te beheren en automatiseren. Taken en modelservice bieden hostingmodellen als batch- en streamingtaken en als REST-eindpunten. Zie het levenscyclusbeheer van ML met behulp van MLflow of de Python API-documenten voor MLflow voor meer informatie en voorbeelden.
Zie de volgende pagina's om aan de slag te gaan met algemene machine learning-workloads:
- Training scikit-learn en tracking met MLflow: zelfstudie van 10 minuten: machine learning op Databricks met scikit-learn
- Deep Learning-modellen trainen: Deep Learning
- Hyperparameterafstemming: Hyperopt hyperparameterafstemming parallelliseren
- Graph Analytics: GraphFrames gebruiken in Azure Databricks
IDE's, hulpprogramma's voor ontwikkelaars en SDK's
Naast het ontwikkelen van Python-code in Azure Databricks-notebooks, kunt u extern ontwikkelen met behulp van geïntegreerde ontwikkelomgevingen (IDE's), zoals PyCharm, Jupyter en Visual Studio Code. Er zijn verschillende opties om werk tussen externe ontwikkelomgevingen en Databricks te synchroniseren:
- Code: U kunt code synchroniseren met Behulp van Git. Zie Git-integratie voor Databricks Git-mappen.
- Bibliotheken en taken: u kunt bibliotheken (zoals Python-wielbestanden) extern maken en uploaden naar Databricks. Deze bibliotheken kunnen worden geïmporteerd in Databricks-notebooks of ze kunnen worden gebruikt om taken te maken. Zie Bibliotheken en Werkstromen plannen en organiseren.
- Uitvoering van externe machines: u kunt code uitvoeren vanuit uw lokale IDE voor interactieve ontwikkeling en testen. De IDE kan communiceren met Azure Databricks om Apache Spark en grote berekeningen uit te voeren op Azure Databricks-clusters. Zie Databricks Connect.
Databricks biedt een set SDK's, waaronder een Python SDK, die ondersteuning biedt voor automatisering en integratie met externe hulpprogramma's. U kunt de Databricks SDK's gebruiken om resources zoals clusters en bibliotheken, code en andere werkruimteobjecten, workloads en taken, en meer te beheren. Bekijk de Databricks SDK's.
Aanvullende bronnen
De Databricks Academy biedt cursussen in eigen tempo en door docenten geleid over veel onderwerpen.
Databricks Labs biedt hulpprogramma's voor Python-ontwikkeling in Databricks, zoals de pytest-invoegtoepassing en de pylint-invoegtoepassing.
De volgende functies bieden ondersteuning voor interoperabiliteit tussen PySpark en pandas:
Connectiviteitshulpprogramma's voor Python en SQL Database zijn onder andere:
- Met de Databricks SQL Connector voor Python kunt u Python-code gebruiken om SQL-opdrachten uit te voeren op Azure Databricks-resources.
- met pyodbc kunt u verbinding maken vanuit uw lokale Python-code via ODBC naar gegevens die zijn opgeslagen in databricks lakehouse.
Veelgestelde vragen en tips voor het verplaatsen van Python-workloads naar Databricks vindt u in de Databricks Knowledge Base