Azure Databricks för Python-utvecklare
Det här avsnittet innehåller en guide för att utveckla notebook-filer och jobb i Azure Databricks med hjälp av Python-språket, inklusive självstudier för vanliga arbetsflöden och uppgifter samt länkar till API:er, bibliotek och verktyg.
Så här kommer du i gång:
- Importera kod: Importera din egen kod från filer eller Git-lagringsplatser eller prova en självstudie som visas nedan. Databricks rekommenderar att du lär dig med interaktiva Databricks Notebooks.
- Kör koden i ett kluster: Skapa antingen ett eget kluster eller se till att du har behörighet att använda ett delat kluster. Koppla anteckningsboken till klustret och kör notebook-filen.
- Sedan kan du:
- Arbeta med större datamängder med Apache Spark
- Lägga till visualiseringar
- Automatisera din arbetsbelastning som ett jobb
- Använda maskininlärning för att analysera dina data
- Utveckla i IDE:er
Självstudier
Självstudierna nedan innehåller exempelkod och notebook-filer för att lära dig mer om vanliga arbetsflöden. Mer information om hur du importerar notebook-exempel till din arbetsyta finns i Importera en notebook-fil .
Datateknik
- Självstudie: Läsa in och transformera data med Apache Spark DataFrames ger en genomgång som hjälper dig att lära dig mer om Apache Spark DataFrames för förberedelse och analys av data.
- Självstudie: Delta Lake.
- Självstudie: Kör din första Delta Live Tables-pipeline.
Datavetenskap och maskininlärning
- Komma igång med Apache Spark DataFrames för förberedelse och analys av data: Självstudie: Läsa in och transformera data med Apache Spark DataFrames
- Självstudie: ML-modeller från slutpunkt till slutpunkt på Azure Databricks. Ytterligare exempel finns i Självstudier: Kom igång med AI och maskininlärning och MLflow-guidens Snabbstart Python.
- Med Mosaic AutoML kan du snabbt komma igång med att utveckla maskininlärningsmodeller på dina egna datauppsättningar. Dess "glass box"-metod genererar notebook-filer med det fullständiga arbetsflödet för maskininlärning som du kan klona, ändra och köra igen.
- Hantera modelllivscykel i Unity Catalog
- Självstudie: ML-modeller från slutpunkt till slutpunkt på Azure Databricks
Felsöka i Python-notebook-filer
Exempelanteckningsboken visar hur du använder Python-felsökningsprogrammet (pdb) i Databricks-notebook-filer. Om du vill använda Python-felsökningsprogrammet måste du köra Databricks Runtime 11.3 LTS eller senare.
Med Databricks Runtime 12.2 LTS och senare kan du använda variabelutforskaren för att spåra det aktuella värdet för Python-variabler i notebook-användargränssnittet. Du kan använda variabelutforskaren för att observera värdena för Python-variabler när du går igenom brytpunkter.
Python-felsökningsexempel notebook
Kommentar
breakpoint()
stöds inte i IPython och fungerar därför inte i Databricks-notebook-filer. Du kan använda import pdb; pdb.set_trace()
i stället för breakpoint()
.
Python-API:er
Python-kod som körs utanför Databricks kan vanligtvis köras i Databricks och vice versa. Om du har befintlig kod importerar du den till Databricks för att komma igång. Mer information finns i Hantera kod med notebook-filer och Databricks Git-mappar nedan.
Databricks kan köra både endators och distribuerade Python-arbetsbelastningar. För datorbaserad databehandling kan du använda Python-API:er och -bibliotek som vanligt. Pandas och scikit-learn kommer till exempel att "bara fungera". För distribuerade Python-arbetsbelastningar erbjuder Databricks två populära API:er direkt: PySpark och Pandas API på Spark.
PySpark-API
PySpark är det officiella Python-API:et för Apache Spark och kombinerar kraften i Python och Apache Spark. PySpark är mer flexibel än Pandas API på Spark och ger omfattande stöd och funktioner för datavetenskap och tekniska funktioner som Spark SQL, Structured Streaming, MLLib och GraphX.
Pandas API on Spark
Kommentar
Koalas-projektet med öppen källkod rekommenderar nu att du byter till Pandas-API:et på Spark. Pandas API på Spark är tillgängligt på kluster som kör Databricks Runtime 10.0 (EoS) och senare. För kluster som kör Databricks Runtime 9.1 LTS och nedan använder du Koalas i stället.
pandas är ett Python-paket som ofta används av dataexperter för dataanalys och manipulering. Pandas skalar dock inte ut till stordata. Pandas API på Spark fyller det här tomrummet genom att tillhandahålla Pandas-motsvarande API:er som fungerar på Apache Spark. Det här API :et med öppen källkod är ett idealiskt val för dataforskare som är bekanta med Pandas men inte Apache Spark.
Hantera kod med notebook-filer och Databricks Git-mappar
Databricks-notebook-filer stöder Python. Dessa notebook-filer tillhandahåller funktioner som liknar Jupyter, men med tillägg som inbyggda visualiseringar med stordata, Apache Spark-integreringar för felsökning och prestandaövervakning och MLflow-integreringar för att spåra maskininlärningsexperiment. Kom igång genom att importera en notebook-fil. När du har åtkomst till ett kluster kan du koppla en notebook-fil till klustret och köra notebook-filen.
Dricks
Om du vill återställa tillståndet för notebook-filen helt kan det vara bra att starta om iPython-kerneln. För Jupyter-användare motsvarar alternativet "starta om kernel" i Jupyter att koppla från och återansluta en notebook-fil i Databricks. Om du vill starta om kerneln i en Python-anteckningsbok klickar du på beräkningsväljaren i notebook-verktygsfältet och hovra över det anslutna klustret eller SQL-lagret i listan för att visa en sidomeny. Välj Koppla från och koppla om. Detta kopplar från notebook-filen från klustret och kopplar om den, vilket startar om Python-processen.
Med Databricks Git-mappar kan användare synkronisera notebook-filer och andra filer med Git-lagringsplatser. Databricks Git-mappar hjälper till med kodversioner och samarbete, och det kan förenkla importen av en fullständig lagringsplats med kod till Azure Databricks, visa tidigare notebook-versioner och integrera med IDE-utveckling. Kom igång genom att klona en fjärransluten Git-lagringsplats. Du kan sedan öppna eller skapa notebook-filer med lagringsplatsens klon, koppla anteckningsboken till ett kluster och köra notebook-filen.
Kluster och bibliotek
Azure Databricks-beräkning tillhandahåller beräkningshantering för kluster av valfri storlek: från kluster med en enda nod upp till stora kluster. Du kan anpassa klustermaskinvara och bibliotek efter dina behov. Dataexperter börjar vanligtvis arbeta antingen genom att skapa ett kluster eller använda ett befintligt delat kluster. När du har åtkomst till ett kluster kan du koppla en notebook-fil till klustret eller köra ett jobb i klustret.
- För små arbetsbelastningar som bara kräver enskilda noder kan dataexperter använda beräkning med en nod för kostnadsbesparingar.
- Detaljerade tips finns i Rekommendationer för beräkningskonfiguration
- Administratörer kan konfigurera klusterprinciper för att förenkla och vägleda skapandet av kluster.
Azure Databricks-kluster använder en Databricks Runtime som tillhandahåller många populära bibliotek, inklusive Apache Spark, Delta Lake, Pandas med mera. Du kan också installera ytterligare python-bibliotek från tredje part eller anpassade bibliotek som ska användas med notebook-filer och jobb.
- Börja med standardbiblioteken i versionsanteckningarna för Databricks Runtime och kompatibilitet. Använd Databricks Runtime för Machine Learning för maskininlärningsarbetsbelastningar. Fullständiga listor över förinstallerade bibliotek finns i Versionsanteckningar för Databricks Runtime och kompatibilitet.
- Anpassa din miljö med Hjälp av Python-bibliotek med notebook-omfattning, vilket gör att du kan ändra din notebook- eller jobbmiljö med bibliotek från PyPI eller andra lagringsplatser. Det
%pip install my_library
magiska kommandot installerasmy_library
på alla noder i det anslutna klustret, men stör inte andra arbetsbelastningar i delade kluster. - Installera icke-Python-bibliotek som klusterbibliotek efter behov.
- Mer information finns i Bibliotek.
Visualiseringar
Azure Databricks Python-notebook-filer har inbyggt stöd för många typer av visualiseringar. Du kan också använda äldre visualiseringar.
Du kan också visualisera data med hjälp av bibliotek från tredje part. vissa är förinstallerade i Databricks Runtime, men du kan även installera anpassade bibliotek. Populära alternativ är:
Projekt
Du kan automatisera Python-arbetsbelastningar som schemalagda eller utlösta jobb i Databricks. Jobb kan köra notebook-filer, Python-skript och Python-hjulfiler.
- Skapa och uppdatera jobb med databricks-användargränssnittet eller Databricks REST API.
- Med Databricks Python SDK kan du skapa, redigera och ta bort jobb programmatiskt.
- Databricks CLI tillhandahåller ett bekvämt kommandoradsgränssnitt för att automatisera jobb.
Dricks
Om du vill schemalägga ett Python-skript i stället för en notebook-fil använder du fältet spark_python_task
under tasks
i brödtexten i en begäran om att skapa jobb.
Maskininlärning
Databricks stöder en mängd olika arbetsbelastningar för maskininlärning (ML), inklusive traditionell ML för tabelldata, djupinlärning för visuellt innehåll och bearbetning av naturligt språk, rekommendationssystem, grafanalys med mera. Allmän information om maskininlärning i Databricks finns i AI och maskininlärning på Databricks.
För ML-algoritmer kan du använda förinstallerade bibliotek i Databricks Runtime for Machine Learning, som innehåller populära Python-verktyg som scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib och XGBoost. Du kan också installera anpassade bibliotek.
För maskininlärningsåtgärder (MLOps) tillhandahåller Azure Databricks en hanterad tjänst för MLflow för öppen källkod-biblioteket. Med MLflow Tracking kan du registrera modellutveckling och spara modeller i återanvändbara format. Du kan använda MLflow Model Registry för att hantera och automatisera befordran av modeller mot produktion. Jobb och modellhantering tillåter värdmodeller som batch- och strömningsjobb och som REST-slutpunkter. Mer information och exempel finns i dokumentationen om ML-livscykelhantering med MLflow eller MLflow Python API.
Information om hur du kommer igång med vanliga maskininlärningsarbetsbelastningar finns på följande sidor:
- Utbildning av scikit-learn och spårning med MLflow: 10-minuters självstudie: maskininlärning på Databricks med scikit-learn
- Träna djupinlärningsmodeller: Djupinlärning
- Justering av hyperparametrar: Parallellisera Hyperopt-hyperparameterjustering
- Graph Analytics: Så här använder du GraphFrames i Azure Databricks
ID:er, utvecklarverktyg och SDK:er
Förutom att utveckla Python-kod i Azure Databricks-notebook-filer kan du utveckla externt med hjälp av integrerade utvecklingsmiljöer (IDE:er) som PyCharm, Jupyter och Visual Studio Code. Det finns flera alternativ för att synkronisera arbete mellan externa utvecklingsmiljöer och Databricks:
- Kod: Du kan synkronisera kod med Git. Se Git-integrering för Databricks Git-mappar.
- Bibliotek och jobb: Du kan skapa bibliotek (till exempel Python-hjulfiler) externt och ladda upp dem till Databricks. Dessa bibliotek kan importeras i Databricks notebook-filer, eller så kan de användas för att skapa jobb. Se Bibliotek och Schemalägg och samordna arbetsflöden.
- Fjärrdatorkörning: Du kan köra kod från din lokala IDE för interaktiv utveckling och testning. IDE kan kommunicera med Azure Databricks för att köra Apache Spark och stora beräkningar på Azure Databricks-kluster. Se Databricks Connect.
Databricks tillhandahåller en uppsättning SDK:er, inklusive en Python SDK, som stöder automatisering och integrering med externa verktyg. Du kan använda Databricks SDK:er för att hantera resurser som kluster och bibliotek, kod och andra arbetsyteobjekt, arbetsbelastningar och jobb med mera. Se Databricks SDK:er.
Mer information om IDE:er, utvecklarverktyg och SDK:er finns i Utvecklarverktyg.
Ytterligare resurser
Databricks Academy erbjuder kurser i egen takt och instruktörsledda kurser i många ämnen.
Databricks Labs tillhandahåller verktyg för Python-utveckling i Databricks, till exempel pytest-plugin-programmet och pylint-plugin-programmet.
Funktioner som stöder samverkan mellan PySpark och Pandas omfattar följande:
Python- och SQL Database-anslutningsverktygen omfattar:
- Med Databricks SQL Connector för Python kan du använda Python-kod för att köra SQL-kommandon på Azure Databricks-resurser.
- pyodbc låter dig ansluta från din lokala Python-kod via ODBC till data som lagras i Databricks lakehouse.
Vanliga frågor och svar och tips för att flytta Python-arbetsbelastningar till Databricks finns i Databricks Knowledge Base