Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oldal bemutatja, hogyan fejleszthet kódot a Databricks-jegyzetfüzetekben, beleértve az automatikus kiegészítést, a Python és az SQL automatikus formázását, a Python és az SQL jegyzetfüzetekben való kombinálását, valamint a jegyzetfüzet verzióelőzményeinek nyomon követését.
A szerkesztővel elérhető speciális funkciókról, például az automatikus kiegészítésről, a változók kiválasztásáról, a többkurzoros támogatásról és az egymás melletti sávokról további információt a Navigálás a Databricks-jegyzetfüzetben és a fájlszerkesztőbencímű témakörben talál.
Ha a jegyzetfüzetet vagy a fájlszerkesztőt használja, a Databricks Assistant segít a kód létrehozásában, magyarázatában és hibakeresésében. További információt a Databricks Assistant használata című témakörben talál.
A Databricks-jegyzetfüzetek beépített interaktív hibakeresőt is tartalmaznak Python-jegyzetfüzetekhez. Lásd: Jegyzetfüzetek hibakeresése.
Kód modularizálása
A Databricks Runtime 11.3 LTS és újabb verziók segítségével létrehozhat és kezelhet forráskódfájlokat az Azure Databricks-munkaterületen, majd szükség szerint importálhatja ezeket a fájlokat a jegyzetfüzeteibe.
A forráskódfájlok használatával kapcsolatos további információkért lásd : Kód megosztása a Databricks-jegyzetfüzetek és a Python- és R-modulok között.
Kódcellák formázása
Az Azure Databricks olyan eszközöket biztosít, amelyekkel gyorsan és egyszerűen formázhatja a Python- és SQL-kódot a jegyzetfüzetcellákban. Ezek az eszközök csökkentik a kód formázásának fenntartására fordított erőfeszítéseket, és segítenek ugyanazon kódolási szabványok érvényesítésében a jegyzetfüzetekben.
Python Black formázó könyvtár
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
Az Azure Databricks támogatja a Python-kódformázást fekete használatával a jegyzetfüzetben. A jegyzetfüzetet egy olyan fürthöz kell csatolni, amelyre a black és a tokenize-rt Python-csomagok telepítve vannak.
A Databricks Runtime 11.3 LTS és az újabb verziók esetén az Azure Databricks előtelepíti black és tokenize-rt. A formátumolót közvetlenül anélkül használhatja, hogy telepítenie kellene ezeket a kódtárakat.
A Databricks Runtime 10.4 LTS és alacsonyabb verziókon a Python-formázó használatához a black==22.3.0 és a tokenize-rt==4.2.1 csomagokat kell telepítenie a PyPI-ról a jegyzetfüzetedbe vagy a fürtödbe. A jegyzetfüzetben a következő parancsot futtathatja:
%pip install black==22.3.0 tokenize-rt==4.2.1
vagy telepítse a könyvtárat a(z) fürtre.
A kódtárak telepítésével kapcsolatos további részletekért lásd a Python környezetkezelését.
A Databricks Git-mappákban lévő fájlok és jegyzetfüzetek esetében a Python-formázó a pyproject.toml fájl alapján konfigurálható. A funkció használatához hozzon létre egy pyproject.toml fájlt a Git mappa gyökérkönyvtárában, és konfigurálja a Fekete konfigurációs formátum szerint. Szerkeszd a fájl [tool.black] szakaszát. A konfiguráció akkor lesz alkalmazva, ha az adott Git-mappában lévő fájlokat és jegyzetfüzeteket formázza.
Python- és SQL-cellák formázása
A kód formázásához szerkesztési jogosultsággal kell rendelkeznie a jegyzetfüzetben.
Az Azure Databricks a Gethue/sql-formatter kódtárat használja az SQL és a Python fekete kódformázójának formázásához.
A formázó a következő módokon aktiválható:
Egyetlen cella formázása
- Billentyűparancs: Nyomja le a Cmd+Shift+F billentyűkombinációt.
- Parancs helyi menüje:
- SQL-cella formázása: Válassza a SQL-cella parancskörnyezeti legördülő menüjében a „ SQL formázása” lehetőséget. Ez a menüpont csak az SQL-jegyzetfüzetcellákban és a nyelvi varázslattal rendelkezőkben
%sqllátható. - Python-cella formázása: Válassza a „Python formátum” lehetőséget a Python-cella parancslistájából. Ez a menüelem csak a Python-jegyzetfüzetcellákban és a nyelvi varázslattal rendelkezőkben
%pythonlátható.
- SQL-cella formázása: Válassza a SQL-cella parancskörnyezeti legördülő menüjében a „ SQL formázása” lehetőséget. Ez a menüpont csak az SQL-jegyzetfüzetcellákban és a nyelvi varázslattal rendelkezőkben
- Jegyzetfüzet Szerkesztés menü: Jelöljön ki egy Python- vagy SQL-cellát, majd válassza a Szerkesztés > Cella formázásalehetőséget.
Több cella formázása
Jelöljön ki több cellát, majd válassza a Szerkesztés > Cella formázásalehetőséget. Ha egynél több nyelv celláit választja ki, csak az SQL- és Python-cellák lesznek formázva. Ide tartoznak azok, amelyek a
%sqlés%python-t használják.A jegyzetfüzet összes Python- és SQL-cellájának formázása
Válassza a > lehetőséget. Ha a jegyzetfüzet több nyelvet is tartalmaz, csak az SQL- és Python-cellák vannak formázva. Ide tartoznak azok, amelyek a
%sqlés%python-t használják.
Ha testre szeretné szabni az SQL-lekérdezések formázását, tekintse meg az egyéni formátumú SQL-utasításokat.
A kódformázás korlátozásai
- A Black érvenyesíti a PEP 8 szabványt a 4 karakteres behúzásokhoz. A behúzás nem konfigurálható.
- Az SQL UDF-ben beágyazott Python-sztringek formázása nem támogatott. Hasonlóképpen, a Python UDF-ben lévő SQL-sztringek formázása nem támogatott.
Kódnyelvek jegyzetfüzetekben
Alapértelmezett nyelv beállítása
A jegyzetfüzet alapértelmezett nyelve a jegyzetfüzet neve alatt jelenik meg.
Az alapértelmezett nyelv módosításához kattintson a nyelv gombra, és válassza ki az új nyelvet a legördülő menüből. Annak érdekében, hogy a meglévő parancsok továbbra is működjenek, az előző alapértelmezett nyelv parancsai automatikusan előtaggal lesznek elnevezve egy nyelvvarázslási paranccsal.
Nyelvek keverése
Alapértelmezés szerint a cellák a jegyzetfüzet alapértelmezett nyelvét használják. A cellában az alapértelmezett nyelvet felülbírálhatja a nyelv gombra kattintva, és kiválaszthat egy nyelvet a legördülő menüből.
Másik lehetőségként használhatja a nyelvvarázsló parancsot %<language> a cella elején. A támogatott varázsparancsok a következők: %python, %r, %scalaés %sql.
Feljegyzés
Nyelvvarázslási parancs meghívásakor a rendszer a parancsot a jegyzetfüzet végrehajtási környezetében küldi el a REPL-nek. Az egyik nyelven (és így az adott nyelvRE VONATKOZÓ REPL-ben) definiált változók nem érhetők el egy másik nyelv REPL-jében. Az REPL-ek csak külső erőforrásokon keresztül oszthatják meg az állapotokat, például a DBFS-ben lévő fájlokat vagy az objektumtárolóban lévő objektumokat.
A jegyzetfüzetek néhány kiegészítő varázsparancsot is támogatnak:
-
%sh: Lehetővé teszi shell kód futtatását a jegyzetfüzetben. Ha a rendszerhéj-parancs kilépési állapota nem nulla, adja hozzá a-ebeállítást, hogy a cella hibásnak minősüljön. Ez a parancs csak az Apache Spark-illesztőprogramon fut, a feldolgozókon nem. Ha egy rendszerhéjparancsot szeretne futtatni az összes csomóponton, használjon init-szkriptet. -
%fs: Fájlrendszerparancsok használatátdbutilsteszi lehetővé. Ha például adbutils.fs.lsparancs futtatásával listázni szeretné a fájlokat, megadhatja%fs ls. További információ: Fájlok használata az Azure Databricksben. -
%md: Lehetővé teszi különböző típusú dokumentációk, például szöveg, képek, matematikai képletek és egyenletek hozzáadását. Lásd a következő szakaszt.
SQL-szintaxis kiemelése és automatikus kiegészítés a Python-parancsokban
A szintaxiskiemelés és az SQL automatikus kiegészítés akkor érhető el, ha az SQL-t Python-parancson belül használja, például egy spark.sql parancsban.
SQL-cella eredmények megjelenítése
Egy Databricks-jegyzetfüzetben egy SQL-nyelvi cellából származó eredmények automatikusan elérhetővé válnak a változóhoz _sqldfrendelt implicit DataFrame-ként. Ezt a változót ezután bármely olyan Python- és SQL-cellában használhatja, amelyet utána futtat, függetlenül attól, hogy milyen pozícióban van a jegyzetfüzetben.
Feljegyzés
Ez a funkció a következő korlátozásokkal rendelkezik:
- A
_sqldfváltozó nem érhető el olyan jegyzetfüzetekben, amelyek sql warehouse-t használnak a számításhoz. - A
_sqldfhasználata a következő Python-cellákban a Databricks Runtime 13.3 és újabb verziókban támogatott. - A
_sqldfhasználata a későbbi SQL-cellákban csak a Databricks Runtime 14.3-on és a felett támogatott. - Ha a lekérdezés a kulcsszavakat
CACHE TABLEhasználja, vagyUNCACHE TABLEa_sqldfváltozó nem érhető el.
Az alábbi képernyőkép bemutatja, hogyan _sqldf használható a következő Python- és SQL-cellákban:
Fontos
A változó _sqldf minden alkalommal újra lesz rendelve, amikor egy SQL-cella fut. Egy adott DataFrame-eredményre való hivatkozás elvesztésének elkerülése érdekében rendelje hozzá egy új változónévhez a következő SQL-cella futtatása előtt:
Python
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
SQL-cellák végrehajtása párhuzamosan
Miközben egy parancs fut, és a jegyzetfüzet egy interaktív fürthöz van csatolva, az aktuális paranccsal egyidejűleg futtathat egy SQL-cellát. Az SQL-cella végrehajtása egy új, párhuzamos munkamenetben történik.
A cella párhuzamos végrehajtása érdekében:
Kattintson a Futtatás most parancsra. A cellát azonnal végrehajtják.
Mivel a cella új munkamenetben fut, az ideiglenes nézetek, az UDF-ek és a implicit Python DataFrame (_sqldf) nem támogatottak a párhuzamosan végrehajtott cellák esetében. Emellett az alapértelmezett katalógus- és adatbázisnevek is használhatók a párhuzamos végrehajtás során. Ha a kód egy másik katalógusban vagy adatbázisban lévő táblára hivatkozik, háromszintű névtér (catalog.schema.table) használatával kell megadnia a tábla nevét.
SQL-cellák végrehajtása SQL-raktáron
SQL-parancsokat futtathat egy Databricks-jegyzetfüzetben egy SQL-raktáron, amely az SQL Analyticsre optimalizált számítási típus. Lásd: Jegyzetfüzet használata SQL-raktárral.
Kód futtatása az Assistantben kiszolgáló nélküli számításon
A Databricks segédben futtathat kódot kiszolgáló nélküli számításon, amely a Databricks alapértelmezett számítása. Az olyan oldalak esetében, ahol már van kijelölt számítás (például jegyzetfüzetek vagy SQL-szerkesztő), a Databricks alapértelmezés szerint használja azt. A számítási típusokkal kapcsolatos információkért lásd: Compute.
Ha nem fér hozzá a kiszolgáló nélküli számításhoz, rendelkeznie kell egy számítási példánnyal, amely a kódot futtathatja a Segéd panelen.
Varázsparancsok használata
A Databricks-jegyzetfüzetek különböző mágikus parancsokat támogatnak, amelyek a szokásos szintaxison túli funkciókat is kiterjesztik a gyakori feladatok egyszerűsítése érdekében. A varázsparancsok előtt % áll sor- és cellamagok esetén.
| Magic parancs | Example | Leírás |
|---|---|---|
%python |
%pythonprint("Hello") |
Cellanyelv váltása Pythonra. Python-kódot hajt végre a cellában. |
%r |
%rprint("Hello") |
Váltson a cella nyelvére R-re. Végrehajtja az R-kódot a cellában. |
%scala |
%scalaprintln("Hello") |
Állítsa a cella nyelvét Scala nyelvre. Scala-kódot hajt végre a cellában. |
%sql |
%sqlSELECT * FROM table |
A cella nyelvét váltson SQL-re. Az eredmények Python-/SQL-cellákban _sqldf érhetők el. |
%md |
%md# TitleContent here |
Váltson a cella nyelvét Markdownra. Markdown-tartalmat jelenít meg a cellában. Támogatja a szöveget, a képeket, a képleteket és a LaTeX-et. |
%pip |
%pip install pandas |
Python-csomagok telepítése jegyzetfüzet szintjén. Lásd: jegyzetfüzetben elérhető Python-könyvtárak. |
%run |
%run /path/to/notebook |
Egy másik jegyzetfüzet végrehajtása a függvények és változók importálásával. Lásd : Jegyzetfüzet-munkafolyamatok. |
%fs |
%fs ls /path |
Hajtsa végre a dbutils fájlrendszer parancsait. Rövid kéz a parancsokhoz dbutils.fs . Lásd: Fájlokkal végzett munka. |
%sh |
%sh ls -la |
Rendszerhéjparancsok végrehajtása. Csak a vezérlőcsomóponton fut. Hiba esetén használja a -e parancsot. |
%tensorboard |
%tensorboard --logdir /logs |
A TensorBoard felhasználói felületének beágyazott megjelenítése. Csak a Databricks Runtime ML-n érhető el. Lásd: TensorBoard. |
%set_cell_max_output_size_in_mb |
%set_cell_max_output_size_in_mb 10 |
A cellakimenet maximális méretének beállítása. Tartomány: 1-20 MB. A jegyzetfüzetben minden következő cellára érvényes. |
%skip |
%skipprint("This won't run") |
Cellavégrehajtás kihagyása. Megakadályozza a cella futását a jegyzetfüzet végrehajtásakor. |
Feljegyzés
IPython Automagic: A Databricks-jegyzetfüzetekben alapértelmezés szerint engedélyezve van az IPython automagic, így bizonyos parancsok, például pip az % előtag nélkül is használhatók. Például a pip install pandas ugyanúgy működik, mint a %pip install pandas.
Fontos
- A változók és az állapotok különböző nyelvi REPL-ek között vannak elkülönítve. A Python-változók például nem érhetők el a Scala-cellákban.
- Egy jegyzetfüzetcellának csak egy cellamágia parancsa lehet, és a cella első sorának kell lennie.
-
%runönmagában kell lennie egy cellának, mert a teljes jegyzetfüzetet beágyazottan futtatja. -
%pipHa a Databricks Runtime 12.2 LTS-t használja, a telepítés után helyezze el az összes csomagtelepítési parancsot a jegyzetfüzet elejére, mivel a Python-állapot alaphelyzetbe áll a telepítés után.