Dela via


Utveckla ett jobb på Azure Databricks med databricks-tillgångspaket

Med Databricks-tillgångspaket, som även kallas paket, kan du programmatiskt validera, distribuera och köra Azure Databricks-resurser, till exempel jobb. Du kan också använda paket för att programmatiskt hantera Delta Live Tables-pipelines och arbeta med MLOps Stacks. Se Vad är Databricks-tillgångspaket?.

Den här artikeln beskriver steg som du kan utföra från en lokal utvecklingskonfiguration för att använda ett paket som programmatiskt hanterar ett jobb. Se Introduktion till Azure Databricks-arbetsflöden.

Om du har befintliga jobb som har skapats med hjälp av användargränssnittet eller API:et för Azure Databricks-arbetsflöden som du vill flytta till paket måste du återskapa dem som paketkonfigurationsfiler. För att göra det rekommenderar Databricks att du först skapar ett paket med hjälp av stegen nedan och kontrollerar om paketet fungerar. Du kan sedan lägga till jobbdefinitioner, notebook-filer och andra källor i paketet. Se Lägga till en befintlig jobbdefinition i ett paket.

Förutom att använda Databricks CLI för att köra ett jobb som distribueras av ett paket kan du också visa och köra dessa jobb i användargränssnittet för Azure Databricks-jobb. Se Visa och köra ett jobb som skapats med ett Databricks-tillgångspaket.

Krav

  • Databricks CLI version 0.218 eller senare. Om du vill kontrollera den installerade versionen av Databricks CLI kör du kommandot databricks -v. Information om hur du installerar Databricks CLI finns i Installera eller uppdatera Databricks CLI.

Beslut: Skapa paketet med hjälp av en mall eller manuellt

Bestäm om du vill skapa ett exempelpaket med hjälp av en mall eller manuellt:

Skapa paketet med hjälp av en mall

I de här stegen skapar du paketet med azure Databricks-standardpaketmallen för Python, som består av en notebook- eller Python-kod, tillsammans med definitionen av ett jobb för att köra det. Sedan validerar, distribuerar och kör du det distribuerade jobbet på din Azure Databricks-arbetsyta. Fjärrarbetsytan måste ha arbetsytefiler aktiverade. Se Vad är arbetsytefiler?.

Steg 1: Konfigurera autentisering

I det här steget konfigurerar du autentisering mellan Databricks CLI på utvecklingsdatorn och Azure Databricks-arbetsytan. Den här artikeln förutsätter att du vill använda U2M-autentisering (OAuth user-to-machine) och en motsvarande Azure Databricks-konfigurationsprofil med namnet DEFAULT för autentisering.

Kommentar

U2M-autentisering är lämpligt för att prova de här stegen i realtid. För helt automatiserade arbetsflöden rekommenderar Databricks att du använder M2M-autentisering (machine-to-machine) för OAuth i stället. Se installationsinstruktionerna för M2M-autentisering i Autentisering.

  1. Använd Databricks CLI för att initiera OAuth-tokenhantering lokalt genom att köra följande kommando för varje målarbetsyta.

    I följande kommando ersätter du <workspace-url> med url:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI uppmanar dig att spara den information som du angav som en Azure Databricks-konfigurationsprofil. Tryck Enter för att acceptera det föreslagna profilnamnet eller ange namnet på en ny eller befintlig profil. Alla befintliga profiler med samma namn skrivs över med den information som du angav. Du kan använda profiler för att snabbt växla autentiseringskontext över flera arbetsytor.

    Om du vill hämta en lista över befintliga profiler i en separat terminal eller kommandotolk använder du Databricks CLI för att köra kommandot databricks auth profiles. Om du vill visa en specifik profils befintliga inställningar kör du kommandot databricks auth env --profile <profile-name>.

  3. I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.

  4. Om du vill visa en profils aktuella OAuth-tokenvärde och tokens kommande förfallotidsstämpel kör du något av följande kommandon:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Om du har flera profiler med samma --host värde kan du behöva ange --host alternativen och -p tillsammans för att hjälpa Databricks CLI att hitta rätt matchande OAuth-tokeninformation.

Steg 2: Skapa paketet

Ett paket innehåller de artefakter som du vill distribuera och inställningarna för de resurser som du vill köra.

  1. Använd terminalen eller kommandotolken för att växla till en katalog på den lokala utvecklingsdatorn som innehåller mallens genererade paket.

  2. Använd Dataricks CLI för att köra bundle init kommandot:

    databricks bundle init
    
  3. För Template to uselämnar du standardvärdet för default-python genom att trycka på Enter.

  4. För Unique name for this projectlämnar du standardvärdet my_project, eller skriver ett annat värde och trycker sedan på Enter. Detta avgör namnet på rotkatalogen för det här paketet. Den här rotkatalogen skapas i den aktuella arbetskatalogen.

  5. För Include a stub (sample) notebookväljer och trycker du yesEnter.

  6. För Include a stub (sample) DLT pipelineväljer och trycker du noEnter. Detta instruerar Databricks CLI att inte definiera en Delta Live Tables-exempelpipeline i ditt paket.

  7. För Include a stub (sample) Python packageväljer och trycker du noEnter. Detta instruerar Databricks CLI att inte lägga till pythonhjulspaketfiler eller relaterade bygginstruktioner i ditt paket.

Steg 3: Utforska paketet

Om du vill visa de filer som mallen genererade växlar du till rotkatalogen för det nyligen skapade paketet och öppnar den här katalogen med önskad IDE, till exempel Visual Studio Code. Filer av särskilt intresse omfattar följande:

  • databricks.yml: Den här filen anger paketets programmatiska namn, innehåller en referens till jobbdefinitionen och anger inställningar för målarbetsytan.
  • resources/<project-name>_job.yml: Den här filen anger jobbets inställningar, inklusive en standarduppgift för notebook-filer.
  • src/notebook.ipynb: Den här filen är en exempelanteckningsbok som vid körning helt enkelt initierar en RDD som innehåller talen 1 till 10.

När det gäller att anpassa jobb motsvarar mappningarna i en jobbdeklaration jobbåtgärdens nyttolast för begäran enligt definitionen i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format.

Dricks

Du kan definiera, kombinera och åsidosätta inställningarna för nya jobbkluster i paket med hjälp av de tekniker som beskrivs i Åsidosätt klusterinställningar i Databricks-tillgångspaket.

Steg 4: Verifiera projektets paketkonfigurationsfil

I det här steget kontrollerar du om paketkonfigurationen är giltig.

  1. Från rotkatalogen använder du Databricks CLI för att köra bundle validate kommandot enligt följande:

    databricks bundle validate
    
  2. Om en sammanfattning av paketkonfigurationen returneras lyckades verifieringen. Om några fel returneras åtgärdar du felen och upprepar sedan det här steget.

Om du gör några ändringar i paketet efter det här steget bör du upprepa det här steget för att kontrollera om paketkonfigurationen fortfarande är giltig.

Steg 5: Distribuera det lokala projektet till fjärrarbetsytan

I det här steget distribuerar du den lokala notebook-filen till din fjärranslutna Azure Databricks-arbetsyta och skapar Azure Databricks-jobbet på din arbetsyta.

  1. Från paketroten använder du Databricks CLI för att köra kommandot på bundle deploy följande sätt:

    databricks bundle deploy -t dev
    
  2. Kontrollera om den lokala notebook-filen har distribuerats: Klicka på Arbetsyta i sidofältet på azure Databricks-arbetsytan.

  3. Klicka i mappen Användare ><your-username>> .bundle >><project-name>dev > files > src. Anteckningsboken ska finnas i den här mappen.

  4. Kontrollera om jobbet har skapats: Klicka på Arbetsflöden i azure Databricks-arbetsytans sidofält.

  5. På fliken Jobb klickar du på [dev <your-username>] <project-name>_job.

  6. Klicka på fliken Uppgifter . Det bör finnas en uppgift: notebook_task.

Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 4–5 för att kontrollera om paketkonfigurationen fortfarande är giltig och sedan distribuera om projektet.

Steg 6: Kör det distribuerade projektet

I det här steget kör du Azure Databricks-jobbet på din arbetsyta.

  1. Från rotkatalogen använder du Databricks CLI för att köra bundle run kommandot enligt följande och ersätter <project-name> med namnet på projektet från steg 2:

    databricks bundle run -t dev <project-name>_job
    
  2. Kopiera värdet Run URL för som visas i terminalen och klistra in det här värdet i webbläsaren för att öppna Azure Databricks-arbetsytan.

  3. När jobbaktiviteten har slutförts på din Azure Databricks-arbetsyta och visar ett grönt namnlist klickar du på jobbaktiviteten för att se resultatet.

Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 4–6 för att kontrollera om paketkonfigurationen fortfarande är giltig, distribuera om projektet och köra det omdistribuerade projektet.

Steg 7: Rensa

I det här steget tar du bort den distribuerade anteckningsboken och jobbet från din arbetsyta.

  1. Från rotkatalogen använder du Databricks CLI för att köra bundle destroy kommandot enligt följande:

    databricks bundle destroy
    
  2. Bekräfta begäran om jobbborttagning: När du uppmanas att permanent förstöra resurser skriver y du och trycker på Enter.

  3. Bekräfta begäran om borttagning av notebook-filer: När du uppmanas att permanent förstöra den tidigare distribuerade mappen och alla dess filer skriver y du och trycker på Enter.

  4. Om du också vill ta bort paketet från utvecklingsdatorn kan du nu ta bort den lokala katalogen från steg 2.

Du har nått slutet av stegen för att skapa ett paket med hjälp av en mall.

Skapa paketet manuellt

I de här stegen skapar du ett paket från grunden. Det här enkla paketet består av två notebook-filer och definitionen av ett Azure Databricks-jobb för att köra dessa notebook-filer. Sedan validerar, distribuerar och kör du de distribuerade notebook-filerna från jobbet på din Azure Databricks-arbetsyta. De här stegen automatiserar snabbstarten med titeln Skapa ditt första arbetsflöde med ett Azure Databricks-jobb.

Steg 1: Skapa paketet

Ett paket innehåller de artefakter som du vill distribuera och inställningarna för de resurser som du vill köra.

  1. Skapa eller identifiera en tom katalog på utvecklingsdatorn.
  2. Växla till den tomma katalogen i terminalen eller öppna den tomma katalogen i din IDE.

Dricks

Den tomma katalogen kan associeras med en klonad lagringsplats som hanteras av en Git-provider. På så sätt kan du hantera ditt paket med extern versionskontroll och enklare samarbeta med andra utvecklare och IT-proffs i ditt projekt. Men för att förenkla den här demonstrationen används inte en klonad lagringsplats här.

Om du väljer att klona en lagringsplats för den här demonstrationen rekommenderar Databricks att lagringsplatsen är tom eller bara har grundläggande filer i den, till exempel README och .gitignore. Annars kan befintliga filer på lagringsplatsen synkroniseras i onödan till din Azure Databricks-arbetsyta.

Steg 2: Lägga till anteckningsböcker i projektet

I det här steget lägger du till två notebook-filer i projektet. Den första notebook-filen får en lista över trendiga babynamn sedan 2007 från New York State Department of Healths offentliga datakällor. Se BabyNamn: Trending by Name: Beginning 2007 on the department's website. Den första notebook-filen sparar sedan dessa data i din Azure Databricks Unity Catalog-volym med namnet my-volume i ett schema med namnet default i en katalog med namnet main. Den andra notebook-filen frågar efter sparade data och visar aggregerade antal babynamn efter förnamn och kön för 2014.

  1. Från katalogens rot skapar du den första notebook-filen, en fil med namnet retrieve-baby-names.py.

  2. Lägg till följande kod i retrieve-baby-names.py-filen:

    # Databricks notebook source
    import requests
    
    response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
    
  3. Skapa den andra anteckningsboken, en fil med namnet filter-baby-names.py, i samma katalog.

  4. Lägg till följande kod i filter-baby-names.py-filen:

    # Databricks notebook source
    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
    

Steg 3: Lägg till en paketkonfigurationsschemafil i projektet

Om du använder en IDE som Visual Studio Code, PyCharm Professional eller IntelliJ IDEA Ultimate som ger stöd för YAML-filer och JSON-schemafiler kan du använda din IDE för att inte bara skapa paketkonfigurationsschemafilen utan för att kontrollera projektets paketkonfigurationsfilsyntax och formatering och ge tips om kodkomplettering. enligt följande. Observera att även om paketkonfigurationsfilen som du skapar senare i steg 5 är YAML-baserad, är paketkonfigurationsschemafilen i det här steget JSON-baserad.

Visual Studio Code

  1. Lägg till stöd för YAML-språkservern i Visual Studio Code, till exempel genom att installera YAML-tillägget från Visual Studio Code Marketplace.

  2. Generera JSON-schemafilen för Databricks Asset Bundle-konfigurationen med hjälp av Databricks CLI för att köra bundle schema kommandot och omdirigera utdata till en JSON-fil. Generera till exempel en fil med namnet bundle_config_schema.json i den aktuella katalogen enligt följande:

    databricks bundle schema > bundle_config_schema.json
    
  3. Observera att du senare i steg 5 lägger till följande kommentar i början av paketkonfigurationsfilen, som associerar din paketkonfigurationsfil med den angivna JSON-schemafilen:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Kommentar

    Om din JSON-schemafil för Databricks Asset Bundle finns i en annan sökväg i föregående kommentar ersätter du bundle_config_schema.json med den fullständiga sökvägen till schemafilen.

Pycharm professsional

  1. Generera JSON-schemafilen för Databricks Asset Bundle-konfigurationen med hjälp av Databricks CLI för att köra bundle schema kommandot och omdirigera utdata till en JSON-fil. Generera till exempel en fil med namnet bundle_config_schema.json i den aktuella katalogen enligt följande:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurera PyCharm för att identifiera JSON-schemafilen för paketkonfiguration och slutför sedan JSON-schemamappningen genom att följa anvisningarna i Konfigurera ett anpassat JSON-schema.

  3. Observera att du senare i steg 5 använder PyCharm för att skapa eller öppna en paketkonfigurationsfil. Enligt konventionen heter databricks.ymlden här filen .

Intellij idea ultimate

  1. Generera JSON-schemafilen för Databricks Asset Bundle-konfigurationen med hjälp av Databricks CLI för att köra bundle schema kommandot och omdirigera utdata till en JSON-fil. Generera till exempel en fil med namnet bundle_config_schema.json i den aktuella katalogen enligt följande:

    databricks bundle schema > bundle_config_schema.json
    
  2. Konfigurera IntelliJ IDEA för att identifiera JSON-schemafilen för paketkonfiguration och slutför sedan JSON-schemamappningen genom att följa anvisningarna i Konfigurera ett anpassat JSON-schema.

  3. Observera att du senare i steg 5 använder IntelliJ IDEA för att skapa eller öppna en paketkonfigurationsfil. Enligt konventionen heter databricks.ymlden här filen .

Steg 4: Konfigurera autentisering

I det här steget konfigurerar du autentisering mellan Databricks CLI på utvecklingsdatorn och Azure Databricks-arbetsytan. Den här artikeln förutsätter att du vill använda U2M-autentisering (OAuth user-to-machine) och en motsvarande Azure Databricks-konfigurationsprofil med namnet DEFAULT för autentisering.

Kommentar

U2M-autentisering är lämpligt för att prova de här stegen i realtid. För helt automatiserade arbetsflöden rekommenderar Databricks att du använder M2M-autentisering (machine-to-machine) för OAuth i stället. Se installationsinstruktionerna för M2M-autentisering i Autentisering.

  1. Använd Databricks CLI för att initiera OAuth-tokenhantering lokalt genom att köra följande kommando för varje målarbetsyta.

    I följande kommando ersätter du <workspace-url> med url:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI uppmanar dig att spara den information som du angav som en Azure Databricks-konfigurationsprofil. Tryck Enter för att acceptera det föreslagna profilnamnet eller ange namnet på en ny eller befintlig profil. Alla befintliga profiler med samma namn skrivs över med den information som du angav. Du kan använda profiler för att snabbt växla autentiseringskontext över flera arbetsytor.

    Om du vill hämta en lista över befintliga profiler i en separat terminal eller kommandotolk använder du Databricks CLI för att köra kommandot databricks auth profiles. Om du vill visa en specifik profils befintliga inställningar kör du kommandot databricks auth env --profile <profile-name>.

  3. I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.

  4. Om du vill visa en profils aktuella OAuth-tokenvärde och tokens kommande förfallotidsstämpel kör du något av följande kommandon:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Om du har flera profiler med samma --host värde kan du behöva ange --host alternativen och -p tillsammans för att hjälpa Databricks CLI att hitta rätt matchande OAuth-tokeninformation.

Steg 5: Lägg till en paketkonfigurationsfil i projektet

I det här steget definierar du hur du vill distribuera och köra de två notebook-filerna. I den här demonstrationen vill du använda ett Azure Databricks-jobb för att köra den första notebook-filen och sedan den andra notebook-filen. Eftersom den första notebook-filen sparar data och den andra notebook-filen frågar efter sparade data, vill du att den första notebook-filen ska slutföras innan den andra notebook-filen startar. Du modellerar dessa mål i en paketkonfigurationsfil i projektet.

  1. Från katalogens rot skapar du paketkonfigurationsfilen, en fil med namnet databricks.yml.
  2. Lägg till följande kod i databricks.yml filen och ersätt <workspace-url> med url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net. Den här URL:en måste matcha den i .databrickscfg filen:

Dricks

Den första raden, som börjar med # yaml-language-server, krävs endast om din IDE stöder den. Mer information finns i Steg 3 tidigare.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job:
      name: retrieve-filter-baby-names-job
      job_clusters:
        - job_cluster_key: common-cluster
          new_cluster:
            spark_version: 12.2.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1
      tasks:
        - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./filter-baby-names.py

targets:
  development:
    workspace:
      host: <workspace-url>

När det gäller att anpassa jobb motsvarar mappningarna i en jobbdeklaration jobbåtgärdens nyttolast för begäran enligt definitionen i POST /api/2.1/jobs/create i REST API-referensen, uttryckt i YAML-format.

Dricks

Du kan definiera, kombinera och åsidosätta inställningarna för nya jobbkluster i paket med hjälp av de tekniker som beskrivs i Åsidosätt klusterinställningar i Databricks-tillgångspaket.

Steg 6: Verifiera projektets paketkonfigurationsfil

I det här steget kontrollerar du om paketkonfigurationen är giltig.

  1. Använd Databricks CLI för att köra bundle validate kommandot enligt följande:

    databricks bundle validate
    
  2. Om en sammanfattning av paketkonfigurationen returneras lyckades verifieringen. Om några fel returneras åtgärdar du felen och upprepar sedan det här steget.

Om du gör några ändringar i paketet efter det här steget bör du upprepa det här steget för att kontrollera om paketkonfigurationen fortfarande är giltig.

Steg 7: Distribuera det lokala projektet till fjärrarbetsytan

I det här steget distribuerar du de två lokala notebook-filerna till din fjärranslutna Azure Databricks-arbetsyta och skapar Azure Databricks-jobbet på din arbetsyta.

  1. Använd Databricks CLI för att köra kommandot på bundle deploy följande sätt:

    databricks bundle deploy -t development
    
  2. Kontrollera om de två lokala notebook-filerna har distribuerats: Klicka på Arbetsyta i azure Databricks-arbetsytans sidofält.

  3. Klicka i mappen Användare >><your-username>.bundle > för babynamnsutvecklingsfiler >>. De två notebook-filerna ska finnas i den här mappen.

  4. Kontrollera om jobbet har skapats: Klicka på Arbetsflöden i azure Databricks-arbetsytans sidofält.

  5. På fliken Jobb klickar du på hämta-filtrera-baby-names-job.

  6. Klicka på fliken Uppgifter . Det bör finnas två uppgifter: retrieve-baby-names-task och filter-baby-names-task.

Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 6–7 för att kontrollera om paketkonfigurationen fortfarande är giltig och sedan distribuera om projektet.

Steg 8: Kör det distribuerade projektet

I det här steget kör du Azure Databricks-jobbet på din arbetsyta.

  1. Använd Databricks CLI för att köra bundle run kommandot enligt följande:

    databricks bundle run -t development retrieve-filter-baby-names-job
    
  2. Kopiera värdet Run URL för som visas i terminalen och klistra in det här värdet i webbläsaren för att öppna Azure Databricks-arbetsytan.

  3. När de två aktiviteterna har slutförts och de gröna namnlisterna har slutförts på din Azure Databricks-arbetsyta klickar du på aktiviteten filter-baby-names-task för att se frågeresultatet.

Om du gör några ändringar i paketet efter det här steget bör du upprepa steg 6–8 för att kontrollera om paketkonfigurationen fortfarande är giltig, distribuera om projektet och köra det omdistribuerade projektet.

Steg 9: Rensa

I det här steget tar du bort de två distribuerade notebook-filerna och jobbet från din arbetsyta.

  1. Använd Databricks CLI för att köra bundle destroy kommandot enligt följande:

    databricks bundle destroy
    
  2. Bekräfta begäran om jobbborttagning: När du uppmanas att permanent förstöra resurser skriver y du och trycker på Enter.

  3. Bekräfta begäran om borttagning av anteckningsböcker: När du uppmanas att permanent förstöra den tidigare distribuerade mappen och alla dess filer skriver y du och trycker på Enter.

bundle destroy När kommandot körs tas endast det distribuerade jobbet och mappen som innehåller de två distribuerade notebook-filerna bort. Det här kommandot tar inte bort några biverkningar, till exempel filen babynames.csv som den första notebook-filen skapade. Gör följande för att ta bort babybnames.csv filen:

  1. I sidofältet på din Azure Databricks-arbetsyta klickar du på Katalog.
  2. Klicka på Bläddra i DBFS.
  3. Klicka på mappen FileStore .
  4. Klicka på listrutepilen bredvid babynames.csv och klicka på Ta bort.
  5. Om du också vill ta bort paketet från utvecklingsdatorn kan du nu ta bort den lokala katalogen från steg 1.

Lägga till en befintlig jobbdefinition i ett paket

Du kan använda en befintlig jobbdefinition som grund för att definiera ett nytt jobb i en paketkonfigurationsfil. Följ stegen nedan.

Kommentar

Följande steg skapar ett nytt jobb som har samma inställningar som det befintliga jobbet. Det nya jobbet har dock ett annat jobb-ID än det befintliga jobbet. Du kan inte automatiskt importera ett befintligt jobb-ID till ett paket.

Steg 1: Hämta den befintliga jobbdefinitionen i YAML-format

I det här steget använder du användargränssnittet för Azure Databricks-arbetsytan för att hämta YAML-representationen av den befintliga jobbdefinitionen.

  1. I sidofältet för Azure Databricks-arbetsytan klickar du på Arbetsflöden.
  2. På fliken Jobb klickar du på jobbets namnlänk .
  3. Bredvid knappen Kör nu klickar du på ellipserna och sedan på Visa YAML.
  4. På fliken Skapa kopierar du jobbdefinitionens YAML till ditt lokala Urklipp genom att klicka på Kopiera.

Steg 2: Lägg till jobbdefinitionen YAML i en paketkonfigurationsfil

I paketkonfigurationsfilen lägger du till YAML som du kopierade från föregående steg till någon av följande platser som är märkta i paketkonfigurationsfilerna <job-yaml-can-go-here> på följande sätt:

resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      <job-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <some-unique-programmatic-identifier-for-this-job>:
          <job-yaml-can-go-here>

Steg 3: Lägg till notebook-filer, Python-filer och andra artefakter i paketet

Alla Python-filer och notebook-filer som refereras till i det befintliga jobbet bör flyttas till paketets källor.

För bättre kompatibilitet med paket bör notebook-filer använda IPython Notebook-format (.ipynb). Om du utvecklar paketet lokalt kan du exportera en befintlig notebook-fil från en Azure Databricks-arbetsyta till .ipynb formatet genom att klicka på Arkivexportera >> IPython Notebook från användargränssnittet för Azure Databricks Notebook. Enligt konventionen bör du sedan placera den nedladdade anteckningsboken src/ i katalogen i ditt paket.

När du har lagt till dina notebook-filer, Python-filer och andra artefakter i paketet kontrollerar du att jobbdefinitionen refererar till dem. För en notebook-fil med filnamnet hello.ipynb som finns i en src/ katalog, och src/ katalogen finns i samma mapp som paketkonfigurationsfilen som refererar till src/ katalogen, kan jobbdefinitionen uttryckas på följande sätt:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
      - task_key: hello-task
        notebook_task:
          notebook_path: ./src/hello.ipynb

Steg 4: Verifiera, distribuera och kör det nya jobbet

  1. Kontrollera att paketets konfigurationsfiler är syntaktiskt korrekta genom att köra följande kommando:

    databricks bundle validate
    
  2. Distribuera paketet genom att köra följande kommando. I det här kommandot ersätter du <target-identifier> med den unika programmatiska identifieraren för målet från paketkonfigurationen:

    databricks bundle deploy -t <target-identifier>
    
  3. Kör jobbet med följande kommando.

    databricks bundle run -t <target-identifier> <job-identifier>
    
    • Ersätt <target-identifier> med den unika programmatiska identifieraren för målet från paketkonfigurationen.
    • Ersätt <job-identifier> med den unika programmatiska identifieraren för jobbet från paketkonfigurationen.

Konfigurera ett jobb som använder serverlös beräkning

Viktigt!

Serverlös beräkning för arbetsflöden finns i offentlig förhandsversion. Information om berättigande och aktivering finns i Aktivera serverlös offentlig förhandsversion av beräkning.

I följande exempel visas paketkonfigurationer för att skapa ett jobb som använder serverlös beräkning.

Om du vill använda serverlös beräkning för att köra ett jobb som innehåller notebook-uppgifter utelämnar du konfigurationen job_clusters från paketkonfigurationsfilen.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job-serverless:
      name: retrieve-filter-baby-names-job-serverless
      tasks:
        - task_key: retrieve-baby-names-task
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          notebook_task:
            notebook_path: ./filter-baby-names.py

  targets:
    development:
      workspace:
        host: <workspace-url>

Om du vill använda serverlös beräkning för att köra ett jobb som innehåller Python-uppgifter inkluderar du konfigurationen environments .

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: serverless-python-tasks

resources:
jobs:
  serverless-python-job:
    name: serverless-job-with-python-tasks

    tasks:
      - task_key: wheel-task-1
        python_wheel_task:
          entry_point: main
          package_name: wheel_package
        environment_key: Default

    environments:
      - environment_key: Default
        spec:
          client: "1"
          dependencies:
            - workflows_authoring_toolkit==0.0.1

targets:
  development:
    workspace:
      host: <workspace-url>

Se Köra ditt Azure Databricks-jobb med serverlös beräkning för arbetsflöden.