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.
A Databricks-jegyzetfüzetek támogatják a kódformázást, az automatikus kiegészítést, a több nyelvet és a mágikus parancsokat a kód Python, SQL, Scala és R nyelven történő fejlesztéséhez.
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 Genie Code elérhető a kód létrehozásához, magyarázatához és hibakereséséhez. További információt a Genie-kód 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 : Databricks-jegyzetfüzetek hibakeresése.
Fontos
A jegyzetfüzetet egy aktív compute munkamenethez kell csatolni a kódtámogatási funkciókhoz, beleértve az automatikus kiegészítést, Python a kódformázást és a hibakeresőt.
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 a Azure Databricks munkaterületen, majd szükség szerint importálhatja ezeket a fájlokat a jegyzetfüzetekbe.
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 Munka Python és R modulokkal.
Kódcellák formázása
Azure Databricks olyan eszközöket biztosít, amelyekkel Python és SQL-kódot formázhat 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 fekete formátumtár
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
Azure Databricks támogatja Python kódformázást black használatával a jegyzetfüzetben. A jegyzetfüzetet black és tokenize-rt Python csomagokkal rendelkező fürthöz kell csatolni.
A Databricks Runtime 11.3 LTS és az újabb verziókon az Azure Databricks előtelepíti a black és tokenize-rt-t. 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-en és az alatti verziókon black==22.3.0 és tokenize-rt==4.2.1-t a PyPI-ről kell telepítenie jegyzetfüzetre vagy fürtre a Python formázó használatához. 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 információkért lásd: Python környezetkezelés.
A Databricks Git-mappákban lévő fájlok és jegyzetfüzetek esetében a Python formátumot a pyproject.toml fájl alapján konfigurálhatja. 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.
A Python és SQL-cellák formázása
A kód formázásához szerkesztési jogosultsággal kell rendelkeznie a jegyzetfüzetben.
Azure Databricks egyéni SQL-formázó használatával formázza az SQL-t és a black Python kódformázóját.
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: Python cella parancskörnyezeti legördülő menüjében válassza a Format Python lehetőséget. Ez a menüelem csak Python jegyzetfüzetcellákban vagy azokban látható, amelyek
%pythonlanguage magic-kel rendelkeznek.
- 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(ák) formázása lehető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.Formázza az összes Python és SQL cellát a notebookban
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ókért lásd: Fájlok kezelése az Azure Databricks-ben. -
%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 Python parancsokban
A szintaxiskiemelés és az SQL autocomplete akkor érhető el, ha sql-t használ egy Python parancson belül, 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ármilyen Python- és SQL-cellában használhatja, függetlenül attól, hogy milyen pozícióban vannak 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
_sqldftovábbi Python cellákban való használata a Databricks Runtime 13.3-ban é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épen látható, hogyan használható _sqldf 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 párhuzamos futtatása
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.
Egy cella párhuzamos futtatásához:
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 futtatá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.
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 parancsvarázslatok % előtaggal vannak jelölve, és egyetlen sorra vonatkoznak. A cellavarázsok előtaggal %% vannak elnevezve, és az egész cellára vonatkoznak.
| Magic parancs | Example | Leírás |
|---|---|---|
%python |
%pythonprint("Hello") |
A cella nyelvének váltása Pythonra. Végrehajtja Python kódot 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 _sqldf Python/SQL-cellákban é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 |
Telepítse Python csomagokat (jegyzetfüzet-hatókörrel). Lásd: Notebook-hatókörű 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. |
%%profile |
%%profilemy_function() |
Profil Python kód végrehajtása. Hierarchikus hívásfa megjelenítése időzítési információkkal. A Databricks Runtime 17.2-s vagy újabb verzióját igényli. |
%%oprofile |
%%oprofilemy_function() |
Profilobjektum létrehozása a cellavégrehajtás során. Megjeleníti a létrehozott új nettó objektumok táblázatát, típus szerint csoportosítva. A Databricks Runtime 17.2-s vagy újabb verzióját igényli. |
%uv pip |
%uv pip install simplejson |
Python csomagok (jegyzetfüzet-hatókörű) telepítése és kezelése uv és standard pip alparancsokkal (install, uninstall, list, show, freeze, check, tree). Ismerje meg a gyorsabb telepítést a(z) %uv pip segítségével. |
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. Például Python változók 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. - Ha
%piphasznál a Databricks Runtime 12.2 LTS-en és alatta, helyezze az összes csomagtelepítési parancsot a jegyzetfüzet elejére, mivel a telepítés után a Python állapot alaphelyzetbe áll.