Utveckla kod i Databricks Notebooks

Den här sidan beskriver hur du utvecklar kod i Databricks-notebook-filer, inklusive automatisk komplettering, automatisk formatering för Python och SQL, kombinerar Python och SQL i en notebook-fil och spårar notebook-revisionshistoriken.

Åtkomstanteckningsbok för redigering

Om du vill öppna en notebook-fil använder du funktionen Sök på arbetsytan eller använder arbetsytans webbläsare för att navigera till anteckningsboken och klickar på anteckningsbokens namn eller ikon.

Kortkommandon

Om du vill visa kortkommandon väljer du Hjälp > kortkommandon. Vilka kortkommandon som är tillgängliga beror på om markören finns i en kodcell (redigeringsläge) eller inte (kommandoläge).

Sök efter och ersätt text

Om du vill hitta och ersätta text i en anteckningsbok väljer du Redigera > Sök och Ersätt. Den aktuella matchningen är markerad i orange och alla andra matchningar är markerade i gult.

Matchande text

Om du vill ersätta den aktuella matchningen klickar du på Ersätt. Om du vill ersätta alla matchningar i anteckningsboken klickar du på Ersätt alla.

Om du vill flytta mellan matchningar klickar du på knapparna Prev och Next . Du kan också trycka på skift+enter och retur för att gå till föregående respektive nästa matchningar.

Stäng sök- och ersätt-verktyget genom att klicka på Ta bort ikon eller trycka på esc.

Komplettera automatiskt

Du kan använda Automatisk komplettering av Azure Databricks för att automatiskt slutföra kodsegment när du skriver dem. Azure Databricks stöder två typer av automatisk komplettering: lokal och server.

Lokal automatisk komplettering slutför ord som definieras i notebook-filen. Server komplettera automatiskt använder klustret för definierade typer, klasser och objekt, samt SQL-databas- och tabellnamn. Om du vill aktivera automatisk komplettering av servern kopplar du anteckningsboken till ett kluster och kör alla celler som definierar slutförbara objekt.

Viktigt

Automatisk komplettering av server i R-notebook-filer blockeras under kommandokörningen.

Om du vill utlösa automatisk komplettering trycker du på Tabb när du har angett ett slutförbart objekt. När du till exempel har definierat och kört cellerna som innehåller definitionerna för MyClass och instancekan metoderna instance för slutföras, och en lista över giltiga slutföranden visas när du trycker på Tabb.

Automatisk komplettering av utlösare

SQL-databas- och tabellnamnskomplettering, typkomplettering, syntaxmarkering och AUTOMATISK SQL-komplettering är tillgängliga i SQL-celler och när du använder SQL i ett Python-kommando, till exempel i ett spark.sql kommando.

Typavslut – – SQL-slutförande

I Databricks Runtime 7.4 och senare kan du visa Python-dokumenttips genom att trycka på Skift+Tabb när du har angett ett slutförbart Python-objekt. Dokumenten innehåller samma information som help() funktionen för ett objekt.

Python-dokumentsträng

Kör markerad text

Du kan markera kod eller SQL-uttryck i en notebook-cell och bara köra den markeringen. Detta är användbart när du snabbt vill iterera kod och frågor.

  1. Markera de rader som du vill köra.

  2. Välj Kör > kör markerad text eller använd kortkommandot CtrlEnter+Shift+. Om ingen text är markerad kör Kör markerad text den aktuella raden.

    köra markerade rader

Om du använder blandade språk i en cell måste du inkludera %<language> raden i markeringen.

Kör markerad text kör också komprimerad kod, om det finns någon i den markerade markeringen.

Särskilda cellkommandon som %run, %pipoch %sh stöds.

Kör markerade textbegränsningar

Du kan inte använda Kör markerad text på celler som har flera utdataflikar (dvs. celler där du har definierat en dataprofil eller visualisering).

Om du inte använder den nya notebook-redigeraren fungerar Kör markerad text endast i redigeringsläge (det vill: när markören finns i en kodcell). Om markören ligger utanför cellen med den markerade texten fungerar inte Kör markerad text . Om du vill undvika den här begränsningen aktiverar du den nya notebook-redigeraren.

Formatera kodceller

Azure Databricks innehåller verktyg som gör att du snabbt och enkelt kan formatera Python- och SQL-kod i notebook-celler. De här verktygen minskar arbetet med att hålla koden formaterad och bidra till att tillämpa samma kodningsstandarder i dina notebook-filer.

Formatera Python-celler

Viktigt

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Azure Databricks stöder Python-kodformatering med hjälp av Svart i notebook-filen. Anteckningsboken måste vara ansluten till ett kluster med black Python-paket tokenize-rt installerade och black-formaterare körs på klustret som notebook-filen är ansluten till.

På Databricks Runtime 11.2 och senare förinstallerar black Azure Databricks och tokenize-rt. Du kan använda formateringen direkt utan att behöva installera de här biblioteken.

På Databricks Runtime 11.1 och nedan måste du installera black==22.3.0 och tokenize-rt==4.2.1 från PyPI i anteckningsboken eller klustret för att kunna använda Python-formatören. Du kan köra följande kommando i anteckningsboken:

%pip install black==22.3.0 tokenize-rt==4.2.1

eller installera biblioteket i klustret.

Mer information om hur du installerar bibliotek finns i Python-miljöhantering.

Formatera Python- och SQL-celler

Du måste ha behörigheten Kan redigera i anteckningsboken för att formatera kod.

Du kan utlösa formateraren på följande sätt:

  • Formatera en enskild cell

    • Kortkommando: Tryck på Cmd+Skift+F.
    • Snabbmeny för kommando:
      • Formatera SQL-cell: Välj Formatera SQL i kommandokontextmenyn i en SQL-cell. Det här menyalternativet visas endast i SQL Notebook-celler eller i de med språkmagi%sql.
      • Formatera Python-cell: Välj Formatera Python i kommandokontextmenyn i en Python-cell. Det här menyalternativet visas endast i Python Notebook-celler eller i de med språkmagi%python.
    • Anteckningsbokens redigeringsmeny: Välj en Python- eller SQL-cell och välj sedan Redigera > formatceller.
  • Formatera flera celler

    Markera flera celler och välj sedan Redigera > formatceller. Om du markerar celler med fler än ett språk formateras endast SQL- och Python-celler. Detta inkluderar de som använder %sql och %python.

  • Formatera alla Python- och SQL-celler i notebook-filen

    Välj Redigera > anteckningsbok för format. Om anteckningsboken innehåller mer än ett språk formateras endast SQL- och Python-celler. Detta inkluderar de som använder %sql och %python.

Begränsningar för kodformatering

  • Svart tillämpar PEP 8-standarder för 4-blankstegs indrag. Indrag kan inte konfigureras.
  • Formatering av inbäddade Python-strängar i en SQL UDF stöds inte. På samma sätt stöds inte formatering av SQL-strängar i en Python UDF.

Versionshistorik

Azure Databricks-notebook-filer har en historik över notebook-versioner, så att du kan visa och återställa tidigare ögonblicksbilder av notebook-filen. Du kan utföra följande åtgärder på versioner: lägga till kommentarer, återställa och ta bort versioner och rensa versionshistorik.

Du kan också synkronisera ditt arbete i Databricks med en fjärransluten Git-lagringsplats.

Om du vill komma åt notebook-versioner klickar du på ikonen för revisionshistorik i det högra sidofältet. Historiken för notebook-versionen visas. Du kan också välja Filversionshistorik>.

Lägg till en kommentar

Så här lägger du till en kommentar i den senaste versionen:

  1. Klicka på versionen.

  2. Klicka på Spara nu.

    Spara kommentar

  3. I dialogrutan Spara anteckningsboksrevision anger du en kommentar.

  4. Klicka på Spara. Notebook-versionen sparas med den angivna kommentaren.

Återställa en version

Så här återställer du en version:

  1. Klicka på versionen.

  2. Klicka på Återställ den här revisionen.

    Återställa revision

  3. Klicka på Bekräfta. Den valda versionen blir den senaste versionen av notebook-filen.

Ta bort en version

Så här tar du bort en versionspost:

  1. Klicka på versionen.

  2. Klicka på papperskorgsikonen Papperskorgen.

    Ta bort revision

  3. Klicka på Ja, radera. Den valda versionen tas bort från historiken.

Rensa versionshistorik

Det går inte att återställa versionshistoriken när den har rensats.

Så här rensar du versionshistoriken för en notebook-fil:

  1. Välj Fil > Rensa versionshistorik.
  2. Klicka på Ja, avmarkera. Versionshistoriken för notebook-filen rensas.

Kodspråk i notebook-filer

Ange standardspråk

Standardspråket för anteckningsboken visas bredvid anteckningsbokens namn.

Standardspråk för notebook-fil

Om du vill ändra standardspråket klickar du på språkknappen och väljer det nya språket i den nedrullningsbara menyn. För att säkerställa att befintliga kommandon fortsätter att fungera prefixet kommandon för det tidigare standardspråket automatiskt med ett språk magiskt kommando.

Blanda språk

Som standard använder celler standardspråket för notebook-filen. Du kan åsidosätta standardspråket i en cell genom att klicka på språkknappen och välja ett språk i den nedrullningsbara menyn.

Listrutan Cellspråk

Alternativt kan du använda kommandot %<language> language magic i början av en cell. De magiska kommandon som stöds är: %python, %r, %scalaoch %sql.

Anteckning

När du anropar ett magiskt språkkommando skickas kommandot till REPL i körningskontexten för notebook-filen. Variabler som definierats på ett språk (och därmed i REPL för det språket) är inte tillgängliga i REPL för ett annat språk. REPL:er kan bara dela tillstånd via externa resurser, till exempel filer i DBFS eller objekt i objektlagring.

Notebook-filer har också stöd för några extra magiska kommandon:

  • %sh: Gör att du kan köra shell-kod i notebook-filen. Om du vill misslyckas med cellen om shell-kommandot har en slutstatus som inte är noll lägger du till -e alternativet . Det här kommandot körs bara på Apache Spark-drivrutinen och inte på arbetarna. Om du vill köra ett gränssnittskommando på alla noder använder du ett init-skript.
  • %fs: Gör att du kan använda dbutils filsystemkommandon. Om du till exempel vill köra dbutils.fs.ls kommandot för att visa en lista över filer kan du ange %fs ls i stället. Mer information finns i Så här arbetar du med filer på Azure Databricks.
  • %md: Gör att du kan inkludera olika typer av dokumentation, inklusive text, bilder och matematiska formler och ekvationer. Se nästa avsnitt.

Markering och automatisk komplettering av SQL-syntax i Python-kommandon

Syntaxmarkering och automatisk komplettering av SQL är tillgängliga när du använder SQL i ett Python-kommando, till exempel i ett spark.sql kommando.

Utforska SQL-cellresultat i Python-notebook-filer internt med Hjälp av Python

Du kanske vill läsa in data med HJÄLP av SQL och utforska dem med hjälp av Python. I en Databricks Python-notebook-fil görs tabellresultat från en SQL-språkcell automatiskt tillgängliga som en Python DataFrame. Namnet på Python DataFrame är _sqldf.

Anteckning

  • I Python-notebook-filer sparas inte DataFrame _sqldf automatiskt och ersätts med resultatet av den senaste SQL-cellkörningen. Om du vill spara DataFrame kör du den här koden i en Python-cell:

    new_dataframe_name = _sqldf
    
  • Om frågan använder en widget för parameterisering är resultatet inte tillgängligt som en Python-dataram.

  • Om frågan använder nyckelorden CACHE TABLE eller UNCACHE TABLEär resultaten inte tillgängliga som en Python-dataram.

Skärmbilden visar ett exempel:

sql results dataframe

Visa bilder

Om du vill visa bilder som lagras i FileStore använder du syntaxen:

%md
![test](files/image.png)

Anta till exempel att du har Databricks-logotypens bildfil i FileStore:

dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png

När du inkluderar följande kod i en Markdown-cell:

Bild i Markdown-cell

bilden återges i cellen:

Renderad bild

Visa matematiska ekvationer

Notebook-filer stöder KaTeX för att visa matematiska formler och ekvationer. Exempel:

%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)

\\(A{_i}{_j}=B{_i}{_j}\\)

$$c = \\pm\\sqrt{a^2 + b^2}$$

\\[A{_i}{_j}=B{_i}{_j}\\]

renderas som:

Renderad ekvation 1

och

%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)

where \\(\delta=(\beta - \mu_{t-1})\\)

renderas som:

Renderad ekvation 2

Inkludera HTML

Du kan inkludera HTML i en notebook-fil med hjälp av funktionen displayHTML. Se HTML, D3 och SVG i notebook-filer för ett exempel på hur du gör detta.

Anteckning

iframe displayHTML hanteras från domänen databricksusercontent.com och iframe-sandbox-miljön innehåller attributet allow-same-origin . databricksusercontent.com måste vara tillgänglig från din webbläsare. Om den för närvarande blockeras av ditt företags nätverk måste den läggas till i en lista över tillåtna.

Du kan länka till andra anteckningsböcker eller mappar i Markdown-celler med hjälp av relativa sökvägar. Ange attributet för href en fästpunktstagg som den relativa sökvägen, och börja med en $ och följ sedan samma mönster som i Unix-filsystem:

%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>