Feladat fejlesztése az Azure Databricksben a Databricks Asset Bundles használatával
A Databricks-eszközcsomagok, más néven csomagok lehetővé teszik az Azure Databricks-erőforrások, például a feladatok programozott érvényesítését, üzembe helyezését és futtatását. Csomagokkal programozott módon kezelheti a Delta Live Tables-folyamatokat, és együttműködhet az MLOps Stacks szolgáltatással. Lásd: Mik azok a Databricks-eszközcsomagok?.
Ez a cikk azokat a lépéseket ismerteti, amelyeket egy helyi fejlesztési beállítással elvégezhet egy feladat programozott kezelésére szolgáló csomag használatához. Lásd : Bevezetés az Azure Databricks-munkafolyamatok használatába.
Ha az Azure Databricks Workflows felhasználói felületén vagy API-jával létrehozott meglévő feladatok kötegekbe szeretné áthelyezni őket, akkor csomagkonfigurációs fájlként újra létre kell hoznia őket. Ehhez a Databricks azt javasolja, hogy először hozzon létre egy csomagot az alábbi lépésekkel, és ellenőrizze, hogy a csomag működik-e. Ezután hozzáadhat feladatdefiníciókat, jegyzetfüzeteket és más forrásokat a csomaghoz. Lásd: Meglévő feladatdefiníció hozzáadása csomaghoz.
A Databricks parancssori felületének használatával egy csomagban üzembe helyezett feladatot is futtathat, ezeket a feladatokat az Azure Databricks-feladatok felhasználói felületén is megtekintheti és futtathatja. Lásd : Databricks-eszközcsomaggal létrehozott feladat megtekintése és futtatása.
Követelmények
- A Databricks CLI 0.218-es vagy újabb verziója. A Databricks parancssori felület telepített verziójának ellenőrzéséhez futtassa a parancsot
databricks -v
. A Databricks parancssori felületének telepítéséhez lásd a Databricks parancssori felület telepítését vagy frissítését. - A távoli munkaterületen engedélyezni kell a munkaterület fájljait. Lásd: Mik azok a munkaterületfájlok?.
Döntés: A csomag létrehozása sablonnal vagy manuálisan
Döntse el, hogy sablonnal vagy manuálisan szeretné-e létrehozni a csomagot:
A csomag létrehozása sablonnal
Ezekben a lépésekben a pythonhoz készült Azure Databricks alapértelmezett csomagsablonjával hozza létre a csomagot, amely egy jegyzetfüzetből vagy Python-kódból áll, és egy feladat definíciójával párosítva futtatja azt. Ezután érvényesítheti, üzembe helyezheti és futtathatja az üzembe helyezett feladatot az Azure Databricks-munkaterületen.
1. lépés: Hitelesítés beállítása
Ebben a lépésben beállítja a hitelesítést a fejlesztői gépen található Databricks parancssori felület és az Azure Databricks-munkaterület között. Ez a cikk feltételezi, hogy OAuth felhasználó–gép (U2M) hitelesítést és egy hitelesítéshez elnevezett DEFAULT
Azure Databricks-konfigurációs profilt szeretne használni.
Feljegyzés
A U2M-hitelesítés megfelelő ezeknek a lépéseknek a valós idejű kipróbálásához. A teljes mértékben automatizált munkafolyamatok esetében a Databricks azt javasolja, hogy inkább OAuth machine-to-machine (M2M) hitelesítést használjon. Tekintse meg az M2M-hitelesítés beállítási utasításait a hitelesítésben.
Az OAuth-jogkivonatok helyi felügyeletének elindításához használja a Databricks parancssori felületét az alábbi parancs futtatásával minden cél-munkaterületen.
Az alábbi parancsban cserélje le
<workspace-url>
például az Azure Databricks munkaterületenkénti URL-címéthttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
A Databricks parancssori felülete kéri, hogy mentse az Azure Databricks konfigurációs profiljaként megadott adatokat. Nyomja le
Enter
a javasolt profilnevet, vagy adja meg egy új vagy meglévő profil nevét. Az azonos nevű meglévő profilokat felülírja a megadott adatokkal. Profilok használatával gyorsan válthat a hitelesítési környezetre több munkaterületen.A meglévő profilok listájának lekéréséhez egy külön terminálban vagy parancssorban futtassa a Parancsot
databricks auth profiles
a Databricks parancssori felületével. Egy adott profil meglévő beállításainak megtekintéséhez futtassa a parancsotdatabricks auth env --profile <profile-name>
.A webböngészőben végezze el a képernyőn megjelenő utasításokat az Azure Databricks-munkaterületre való bejelentkezéshez.
A profil aktuális OAuth-tokenértékének és a jogkivonat közelgő lejárati időbélyegének megtekintéséhez futtassa az alábbi parancsok egyikét:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Ha több azonos értékű profillal rendelkezik
--host
, előfordulhat, hogy együtt kell megadnia azokat és-p
a--host
beállításokat, hogy a Databricks parancssori felülete megkeresse a megfelelő OAuth-jogkivonat-információkat.
2. lépés: A csomag létrehozása
A csomag tartalmazza az üzembe helyezni kívánt összetevőket és a futtatni kívánt erőforrások beállításait.
A terminál vagy a parancssor használatával váltson egy könyvtárra a helyi fejlesztőgépen, amely tartalmazza a sablon által létrehozott csomagot.
A Parancs futtatásához használja a Dataricks parancssori felületét
bundle init
:databricks bundle init
A beállításnál
Template to use
hagyja meg az alapértelmezett értéketdefault-python
a billentyű lenyomásávalEnter
.Ehhez
Unique name for this project
hagyja meg az alapértelmezett értéketmy_project
, vagy írjon be egy másik értéket, majd nyomja le a billentyűtEnter
. Ez határozza meg a csomag gyökérkönyvtárának nevét. Ez a gyökérkönyvtár az aktuális munkakönyvtárban jön létre.Ha azt szeretné, hogy a csomag tartalmazzon egy mintajegyzetfüzetet
Include a stub (sample) notebook
, akkor nyomja le az alapértelmezett értéketyes
Enter
. Ez létrehoz egy mintajegyzetfüzetet asrc
csomag könyvtárában.Válassza ki
no
és nyomja leEnter
a következőtInclude a stub (sample) DLT pipeline
: Ez arra utasítja a Databricks parancssori felületét, hogy ne definiáljon minta Delta Live Tables-folyamatot a csomagban.Válassza ki
no
és nyomja leEnter
a következőtInclude a stub (sample) Python package
: Ez arra utasítja a Databricks parancssori felületét, hogy ne adjon hozzá Python-mintacsomagfájlokat vagy kapcsolódó buildelési utasításokat a csomaghoz.
3. lépés: A csomag felfedezése
A sablon által létrehozott fájlok megtekintéséhez váltson az újonnan létrehozott csomag gyökérkönyvtárára, és nyissa meg ezt a könyvtárat az előnyben részesített IDE-vel, például a Visual Studio Code-tal. A különösen fontos fájlok közé tartoznak a következők:
databricks.yml
: Ez a fájl megadja a csomag programozott nevét, hivatkozik a feladatdefinícióra, és megadja a cél-munkaterület beállításait.resources/<project-name>_job.yml
: Ez a fájl határozza meg a feladat beállításait.src/notebook.ipynb
: Ez a fájl egy jegyzetfüzet, amely futtatáskor egyszerűen inicializál egy RDD-t, amely az 1–10-et tartalmazza.
A feladatok testreszabásához a feladatdeklaráción belüli leképezések megfelelnek a feladat-létrehozási művelet kérelem hasznos adatainak a POST /api/2.1/jobs/create rest API-referenciában meghatározott hasznos adatainak, YAML formátumban kifejezve.
Tipp.
Az új feladatfürtök beállításait kötegekben definiálhatja, kombinálhatja és felülbírálhatja a Databricks-eszközcsomagok fürtbeállításainak felülbírálása című témakörben ismertetett technikákkal.
4. lépés: A projekt csomagkonfigurációs fájljának ellenőrzése
Ebben a lépésben ellenőrzi, hogy a csomagkonfiguráció érvényes-e.
A gyökérkönyvtárból a Databricks parancssori felületével futtassa a parancsot az
bundle validate
alábbiak szerint:databricks bundle validate
Ha a csomagkonfiguráció JSON-reprezentációját adja vissza, az ellenőrzés sikeres volt. Ha bármilyen hibát ad vissza, javítsa ki a hibákat, majd ismételje meg ezt a lépést.
Ha a lépés után módosítja a csomagot, ismételje meg ezt a lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e.
5. lépés: A helyi projekt üzembe helyezése a távoli munkaterületen
Ebben a lépésben üzembe helyezi a helyi jegyzetfüzetet a távoli Azure Databricks-munkaterületen, és létrehozza az Azure Databricks-feladatot a munkaterületen belül.
A csomag gyökérkönyvtárában a Databricks parancssori felületével futtassa a parancsot az
bundle deploy
alábbiak szerint:databricks bundle deploy -t dev
Ellenőrizze, hogy a helyi jegyzetfüzet üzembe lett-e helyezve: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkaterület gombra.
Kattintson a Users>
<your-username>
> .bundle ><project-name>
> dev > files > src mappába. A jegyzetfüzetnek ebben a mappában kell lennie.Ellenőrizze, hogy a feladat létrejött-e: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.
A Feladatok lapon kattintson a [dev
<your-username>
] elemre<project-name>_job
.Kattintson a Feladatok fülre. Egy feladatnak kell lennie: notebook_task.
Ha a lépés után módosítja a csomagot, ismételje meg a 4–5. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, majd telepítse újra a projektet.
6. lépés: Az üzembe helyezett projekt futtatása
Ebben a lépésben futtatja az Azure Databricks-feladatot a munkaterületen.
A gyökérkönyvtárból a Databricks parancssori felülettel futtassa a
bundle run
parancsot az alábbiak szerint, a 2. lépésben a projekt nevére cserélve<project-name>
:databricks bundle run -t dev <project-name>_job
Másolja ki a terminálban megjelenő értéket
Run URL
, és illessze be ezt az értéket a webböngészőbe az Azure Databricks-munkaterület megnyitásához.Az Azure Databricks-munkaterületen, miután a feladat sikeresen befejeződött, és zöld címsort jelenít meg, kattintson a feladat tevékenységére az eredmények megtekintéséhez.
Ha a lépés után módosítja a csomagot, ismételje meg a 4–6. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, telepítse újra a projektet, és futtassa az újra üzembe helyezési projektet.
7. lépés: Törlés
Ebben a lépésben törli az üzembe helyezett jegyzetfüzetet és a feladatot a munkaterületről.
A gyökérkönyvtárból a Databricks parancssori felületével futtassa a parancsot az
bundle destroy
alábbiak szerint:databricks bundle destroy
Erősítse meg a feladat törlésére vonatkozó kérést: Amikor a rendszer arra kéri, hogy véglegesen pusztítsa el az erőforrásokat, írja be
y
és nyomja le a következőtEnter
:Erősítse meg a jegyzetfüzet törlésére vonatkozó kérést: Amikor a rendszer arra kéri, hogy véglegesen megsemmisítse a korábban üzembe helyezett mappát és annak összes fájlját, írja be
y
és nyomja leEnter
.Ha a csomagot a fejlesztői gépről is törölni szeretné, a 2. lépésben törölheti a helyi könyvtárat.
Elérte a csomag sablonnal történő létrehozásának lépéseinek végét.
A csomag manuális létrehozása
Ezekben a lépésekben az alapoktól létre kell hoznia egy csomagot. Ez az egyszerű csomag két jegyzetfüzetből és egy Azure Databricks-feladat definícióból áll a jegyzetfüzetek futtatásához. Ezután érvényesítheti, üzembe helyezheti és futtathatja az üzembe helyezett jegyzetfüzeteket a feladatból az Azure Databricks-munkaterületen. Ezek a lépések automatizálják az első munkafolyamat létrehozása Azure Databricks-feladattal című rövid útmutatót.
1. lépés: A csomag létrehozása
A csomag tartalmazza az üzembe helyezni kívánt összetevőket és a futtatni kívánt erőforrások beállításait.
- Hozzon létre vagy azonosítsan egy üres könyvtárat a fejlesztői gépen.
- Váltson a terminál üres könyvtárára, vagy nyissa meg az üres könyvtárat az IDE-ben.
Tipp.
Az üres könyvtár egy Git-szolgáltató által felügyelt klónozott adattárhoz társítható. Ez lehetővé teszi, hogy külső verziókövetéssel kezelje a csomagot, és könnyebben együttműködjön más fejlesztőkkel és informatikai szakemberekkel a projektben. A bemutató egyszerűsítése érdekében azonban itt nem használ klónozott adattárat.
Ha úgy dönt, hogy klónozza az adattárat ehhez a bemutatóhoz, a Databricks azt javasolja, hogy az adattár üres legyen, vagy csak alapszintű fájlokat tartalmaz, például README
és .gitignore
. Ellenkező esetben előfordulhat, hogy az adattárban lévő meglévő fájlok szükségtelenül szinkronizálódnak az Azure Databricks-munkaterülettel.
2. lépés: Jegyzetfüzetek hozzáadása a projekthez
Ebben a lépésben két jegyzetfüzetet ad hozzá a projekthez. Az első jegyzetfüzet 2007 óta lekéri a népszerű babaneveket a New York-i Egészségügyi Minisztérium nyilvános adatforrásaiból. Lásd : Baby Names: Trending by Name: Beginning 2007 on the department's website. Ez az első jegyzetfüzet ezután menti ezeket az adatokat az Azure Databricks-munkaterület mappájába FileStore
a DBFS-ben. A második jegyzetfüzet lekérdezi a mentett adatokat, és megjeleníti a babanevek összesített számát utónév és nem szerint 2014-ben.
A könyvtár gyökeréből hozza létre az első jegyzetfüzetet, egy nevű fájlt
retrieve-baby-names.py
.Adja a következő kódot a
retrieve-baby-names.py
fájlhoz:# Databricks notebook source import requests response = requests.get('http://health.data.ny.gov/api/views/myeu-hzra/rows.csv') csvfile = response.content.decode('utf-8') dbutils.fs.put("dbfs:/FileStore/babynames.csv", csvfile, True)
Hozza létre a második jegyzetfüzetet, egy fájlt
filter-baby-names.py
ugyanabban a könyvtárban.Adja a következő kódot a
filter-baby-names.py
fájlhoz:# Databricks notebook source babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("dbfs:/FileStore/babynames.csv") babynames.createOrReplaceTempView("babynames_table") years = spark.sql("select distinct(Year) from babynames_table").rdd.map(lambda row : row[0]).collect() years.sort() dbutils.widgets.dropdown("year", "2014", [str(x) for x in years]) display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
3. lépés: Csomagkonfigurációs sémafájl hozzáadása a projekthez
Ha olyan IDE-t használ, mint a Visual Studio Code, a PyCharm Professional vagy az IntelliJ IDEA Ultimate, amely támogatja a YAML-fájlokat és a JSON-sémafájlokat, az IDE használatával nem csak a csomagkonfigurációs sémafájlt hozhatja létre, hanem ellenőrizheti a projekt csomagkonfigurációs fájlszintaxisát és formázását, valamint a kódkiegészítési tippeket, Következőképpen. Vegye figyelembe, hogy bár az 5. lépésben később létrehozott csomagkonfigurációs fájl YAML-alapú, az ebben a lépésben található csomagkonfigurációs sémafájl JSON-alapú.
Visual Studio-kód
A YAML nyelvi kiszolgáló támogatásának hozzáadása a Visual Studio Code-hoz, például a YAML-bővítmény a Visual Studio Code Marketplace-ről való telepítésével.
Hozza létre a Databricks Asset Bundle konfigurációs JSON-sémafájlját a Databricks parancssori felületével a
bundle schema
parancs futtatásához és a kimenet JSON-fájlba való átirányításához. Hozzon létre például egy fájltbundle_config_schema.json
az aktuális könyvtárban az alábbiak szerint:databricks bundle schema > bundle_config_schema.json
Vegye figyelembe, hogy az 5. lépésben a következő megjegyzést fogja hozzáadni a csomagkonfigurációs fájl elejéhez, amely a csomagkonfigurációs fájlt a megadott JSON-sémafájlhoz társítja:
# yaml-language-server: $schema=bundle_config_schema.json
Feljegyzés
Az előző megjegyzésben, ha a Databricks Asset Bundle konfigurációs JSON-sémafájlja egy másik elérési úton található, cserélje le
bundle_config_schema.json
a sémafájl teljes elérési útját.
Pycharm professional
Hozza létre a Databricks Asset Bundle konfigurációs JSON-sémafájlját a Databricks parancssori felületével a
bundle schema
parancs futtatásához és a kimenet JSON-fájlba való átirányításához. Hozzon létre például egy fájltbundle_config_schema.json
az aktuális könyvtárban az alábbiak szerint:databricks bundle schema > bundle_config_schema.json
Konfigurálja a PyCharmot a csomagkonfiguráció JSON-sémafájljának felismeréséhez, majd végezze el a JSON-sémaleképezést az egyéni JSON-séma konfigurálása című témakörben leírtak szerint.
Vegye figyelembe, hogy az 5. lépés későbbi részében a PyCharm használatával fog létrehozni vagy megnyitni egy csomagkonfigurációs fájlt. Konvenció szerint ez a fájl neve
databricks.yml
.
Intellij idea ultimate
Hozza létre a Databricks Asset Bundle konfigurációs JSON-sémafájlját a Databricks parancssori felületével a
bundle schema
parancs futtatásához és a kimenet JSON-fájlba való átirányításához. Hozzon létre például egy fájltbundle_config_schema.json
az aktuális könyvtárban az alábbiak szerint:databricks bundle schema > bundle_config_schema.json
Konfigurálja az IntelliJ IDEA-t a csomagkonfigurációs JSON-sémafájl felismeréséhez, majd végezze el a JSON-sémaleképezést az egyéni JSON-séma konfigurálása című témakörben leírtak szerint.
Vegye figyelembe, hogy az 5. lépés későbbi részében az IntelliJ IDEA használatával fog létrehozni vagy megnyitni egy csomagkonfigurációs fájlt. Konvenció szerint ez a fájl neve
databricks.yml
.
4. lépés: Hitelesítés beállítása
Ebben a lépésben beállítja a hitelesítést a fejlesztői gépen található Databricks parancssori felület és az Azure Databricks-munkaterület között. Ez a cikk feltételezi, hogy OAuth felhasználó–gép (U2M) hitelesítést és egy hitelesítéshez elnevezett DEFAULT
Azure Databricks-konfigurációs profilt szeretne használni.
Feljegyzés
A U2M-hitelesítés megfelelő ezeknek a lépéseknek a valós idejű kipróbálásához. A teljes mértékben automatizált munkafolyamatok esetében a Databricks azt javasolja, hogy inkább OAuth machine-to-machine (M2M) hitelesítést használjon. Tekintse meg az M2M-hitelesítés beállítási utasításait a hitelesítésben.
Az OAuth-jogkivonatok helyi felügyeletének elindításához használja a Databricks parancssori felületét az alábbi parancs futtatásával minden cél-munkaterületen.
Az alábbi parancsban cserélje le
<workspace-url>
például az Azure Databricks munkaterületenkénti URL-címéthttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
A Databricks parancssori felülete kéri, hogy mentse az Azure Databricks konfigurációs profiljaként megadott adatokat. Nyomja le
Enter
a javasolt profilnevet, vagy adja meg egy új vagy meglévő profil nevét. Az azonos nevű meglévő profilokat felülírja a megadott adatokkal. Profilok használatával gyorsan válthat a hitelesítési környezetre több munkaterületen.A meglévő profilok listájának lekéréséhez egy külön terminálban vagy parancssorban futtassa a Parancsot
databricks auth profiles
a Databricks parancssori felületével. Egy adott profil meglévő beállításainak megtekintéséhez futtassa a parancsotdatabricks auth env --profile <profile-name>
.A webböngészőben végezze el a képernyőn megjelenő utasításokat az Azure Databricks-munkaterületre való bejelentkezéshez.
A profil aktuális OAuth-tokenértékének és a jogkivonat közelgő lejárati időbélyegének megtekintéséhez futtassa az alábbi parancsok egyikét:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Ha több azonos értékű profillal rendelkezik
--host
, előfordulhat, hogy együtt kell megadnia azokat és-p
a--host
beállításokat, hogy a Databricks parancssori felülete megkeresse a megfelelő OAuth-jogkivonat-információkat.
5. lépés: Csomagkonfigurációs fájl hozzáadása a projekthez
Ebben a lépésben meghatározza, hogyan szeretné üzembe helyezni és futtatni a két jegyzetfüzetet. Ebben a bemutatóban egy Azure Databricks-feladat használatával szeretné futtatni az első, majd a második jegyzetfüzetet. Mivel az első jegyzetfüzet menti az adatokat, és a második jegyzetfüzet lekérdezi a mentett adatokat, azt szeretné, hogy az első jegyzetfüzet futtassa a második jegyzetfüzet elindítása előtt. Ezeket a célkitűzéseket egy csomagkonfigurációs fájlban modellezheti a projektben.
- A címtár gyökeréből hozza létre a csomagkonfigurációs fájlt, egy nevű
databricks.yml
fájlt. - Adja hozzá a következő kódot a
databricks.yml
fájlhoz, és cserélje le<workspace-url>
példáulhttps://adb-1234567890123456.7.azuredatabricks.net
a munkaterületenkénti URL-címet. Ennek az URL-címnek meg kell egyeznie a.databrickscfg
fájlban lévő url-címével:
Tipp.
Az első sor csak akkor szükséges, # yaml-language-server
ha az IDE támogatja azt. Részletekért lásd a 3. lépést.
# 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>
A feladatok testreszabásához a feladatdeklaráción belüli leképezések megfelelnek a feladat-létrehozási művelet kérelem hasznos adatainak a POST /api/2.1/jobs/create rest API-referenciában meghatározott hasznos adatainak, YAML formátumban kifejezve.
Tipp.
Az új feladatfürtök beállításait kötegekben definiálhatja, kombinálhatja és felülbírálhatja a Databricks-eszközcsomagok fürtbeállításainak felülbírálása című témakörben ismertetett technikákkal.
6. lépés: A projekt csomagkonfigurációs fájljának ellenőrzése
Ebben a lépésben ellenőrzi, hogy a csomagkonfiguráció érvényes-e.
A Parancs futtatásához használja a Databricks parancssori felületét az
bundle validate
alábbiak szerint:databricks bundle validate
Ha a csomagkonfiguráció JSON-reprezentációját adja vissza, az ellenőrzés sikeres volt. Ha bármilyen hibát ad vissza, javítsa ki a hibákat, majd ismételje meg ezt a lépést.
Ha a lépés után módosítja a csomagot, ismételje meg ezt a lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e.
7. lépés: A helyi projekt üzembe helyezése a távoli munkaterületen
Ebben a lépésben üzembe helyezi a két helyi jegyzetfüzetet a távoli Azure Databricks-munkaterületen, és létrehozza az Azure Databricks-feladatot a munkaterületen belül.
A Databricks parancssori felületével futtassa a parancsot az
bundle deploy
alábbiak szerint:databricks bundle deploy -t development
Ellenőrizze, hogy a két helyi jegyzetfüzet üzembe lett-e helyezve: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkaterület gombra.
Kattintson a Users>
<your-username>
> .bundle > baby-names > development > files mappába. A két jegyzetfüzetnek ebben a mappában kell lennie.Ellenőrizze, hogy a feladat létrejött-e: Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.
A Feladatok lapon kattintson a retrieve-filter-baby-names-job elemre.
Kattintson a Feladatok fülre. Két feladatnak kell lennie: retrieve-baby-names-task és filter-baby-names-task.
Ha a lépés után módosítja a csomagot, ismételje meg a 6–7. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, majd helyezze újra üzembe a projektet.
8. lépés: Az üzembe helyezett projekt futtatása
Ebben a lépésben futtatja az Azure Databricks-feladatot a munkaterületen.
A Parancs futtatásához használja a Databricks parancssori felületét az
bundle run
alábbiak szerint:databricks bundle run -t development retrieve-filter-baby-names-job
Másolja ki a terminálban megjelenő értéket
Run URL
, és illessze be ezt az értéket a webböngészőbe az Azure Databricks-munkaterület megnyitásához.Az Azure Databricks-munkaterületen a két feladat sikeres végrehajtása és zöld címsorok megjelenítése után kattintson a filter-baby-names-task tevékenységre a lekérdezés eredményeinek megtekintéséhez.
Ha a lépés után módosítja a csomagot, ismételje meg a 6–8. lépést annak ellenőrzéséhez, hogy a csomagkonfiguráció továbbra is érvényes-e, újra üzembe helyezi a projektet, és futtassa az újra üzembe helyezési projektet.
9. lépés: Tisztítás
Ebben a lépésben törli a két üzembe helyezett jegyzetfüzetet és a feladatot a munkaterületről.
A Parancs futtatásához használja a Databricks parancssori felületét az
bundle destroy
alábbiak szerint:databricks bundle destroy
Erősítse meg a feladat törlésére vonatkozó kérést: Amikor a rendszer arra kéri, hogy véglegesen pusztítsa el az erőforrásokat, írja be
y
és nyomja le a következőtEnter
:Erősítse meg a jegyzetfüzetek törlési kérelmét: Amikor a rendszer arra kéri, hogy véglegesen megsemmisítse a korábban üzembe helyezett mappát és annak összes fájlját, írja be
y
és nyomja leEnter
.
A bundle destroy
parancs futtatása csak az üzembe helyezett feladatot és a két üzembe helyezett jegyzetfüzetet tartalmazó mappát törli. Ez a parancs nem töröl semmilyen mellékhatást, például az babynames.csv
első jegyzetfüzet által létrehozott fájlt. A fájl törléséhez babybnames.csv
tegye a következőket:
- Az Azure Databricks-munkaterület oldalsávjában kattintson a Katalógus elemre.
- Kattintson a Tallózás a DBFS-ben elemre.
- Kattintson a FileStore mappára.
- Kattintson a babynames.csv melletti legördülő nyílra, majd a Törlés gombra.
- Ha a csomagot is törölni szeretné a fejlesztői gépről, akkor most már törölheti a helyi könyvtárat az 1. lépésből.
Meglévő feladatdefiníció hozzáadása csomaghoz
A meglévő feladatdefiníciók alapján definiálhat egy új feladatot egy csomagkonfigurációs fájlban. Ehhez hajtsa végre az alábbi műveleteket.
Feljegyzés
Az alábbi lépések egy olyan új feladatot hoznak létre, amelynek a beállításai megegyeznek a meglévő feladat beállításaival. Az új feladat azonban más feladatazonosítóval rendelkezik, mint a meglévő feladat. Meglévő feladatazonosítót nem importálhat automatikusan egy csomagba.
1. lépés: A meglévő feladatdefiníció lekérése YAML formátumban
Ebben a lépésben az Azure Databricks-munkaterület felhasználói felületével szerezze be a meglévő feladatdefiníció YAML-ábrázolását.
- Az Azure Databricks-munkaterület oldalsávján kattintson a Munkafolyamatok elemre.
- A Feladatok lapon kattintson a feladat Név hivatkozására.
- A Futtatás most gomb mellett kattintson a három pontra, majd a YAML megtekintése parancsra.
- A Létrehozás lapon másolja a feladatdefiníció YAML-jét a helyi vágólapra a Másolás gombra kattintva.
2. lépés: A feladatdefiníció YAML-jének hozzáadása egy csomagkonfigurációs fájlhoz
A csomagkonfigurációs fájlban adja hozzá az előző lépésből kimásolt YAML-et a csomagkonfigurációs fájlokban megjelölt <job-yaml-can-go-here>
alábbi helyek egyikéhez az alábbiak szerint:
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>
3. lépés: Jegyzetfüzetek, Python-fájlok és egyéb összetevők hozzáadása a csomaghoz
A meglévő feladatban hivatkozott Python-fájlokat és jegyzetfüzeteket át kell helyezni a csomag forrásaiba.
A csomagok jobb kompatibilitása érdekében a jegyzetfüzeteknek az IPython notebook formátumot (.ipynb
) kell használniuk. Ha helyileg fejleszti a csomagot, exportálhat egy meglévő jegyzetfüzetet egy Azure Databricks-munkaterületről a formátumba, .ipynb
ha az Azure Databricks-jegyzetfüzet felhasználói felületéről a Fájlexportálás >> IPython-jegyzetfüzetre kattint. Konvenció szerint ezután a letöltött jegyzetfüzetet a csomag könyvtárába src/
kell helyeznie.
Miután hozzáadta a jegyzetfüzeteket, Python-fájlokat és egyéb összetevőket a csomaghoz, győződjön meg arról, hogy a feladatdefiníció hivatkozik rájuk. Például egy olyan jegyzetfüzet esetében, amelynek fájlneve hello.ipynb
egy src/
könyvtárban található, és a src/
könyvtár ugyanabban a mappában van, mint a címtárra hivatkozó src/
csomagkonfigurációs fájl, a feladatdefiníció a következőképpen fejezhető ki:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./src/hello.ipynb
4. lépés: Az új feladat ellenőrzése, üzembe helyezése és futtatása
Ellenőrizze, hogy a csomag konfigurációs fájljai szintaktikailag helyesek-e a következő parancs futtatásával:
databricks bundle validate
Telepítse a csomagot az alábbi parancs futtatásával. Ebben a parancsban cserélje le
<target-identifier>
a cél egyedi programozott azonosítóját a csomagkonfigurációból:databricks bundle deploy -t <target-identifier>
Futtassa a feladatot a következő paranccsal.
databricks bundle run -t <target-identifier> <job-identifier>
- Cserélje le
<target-identifier>
a cél egyedi programozott azonosítóját a csomagkonfigurációból. - Cserélje le
<job-identifier>
a feladat egyedi programozott azonosítóját a csomagkonfigurációból.
- Cserélje le
Kiszolgáló nélküli számítást használó feladat konfigurálása
Fontos
A munkafolyamatok kiszolgáló nélküli számítása nyilvános előzetes verzióban érhető el. A jogosultságról és az engedélyezésről további információt a kiszolgáló nélküli számítási nyilvános előzetes verzió engedélyezése című témakörben talál.
Az alábbi példák a csomagkonfigurációkat szemléltetik egy kiszolgáló nélküli számítást használó feladat létrehozásához.
Ha kiszolgáló nélküli számítást szeretne használni egy jegyzetfüzet-feladatokat tartalmazó feladat futtatásához, hagyja ki a konfigurációt job_clusters
a csomagkonfigurációs fájlból.
# 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>
Ha kiszolgáló nélküli számítást szeretne használni egy Python-feladatokat tartalmazó feladat futtatásához, adja meg a konfigurációt 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>
Lásd: Azure Databricks-feladat futtatása kiszolgáló nélküli számítással munkafolyamatokhoz.