Megosztás a következőn keresztül:


Kód fejlesztése Databricks-jegyzetfüzetekben

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

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

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 megőrzésére és a jegyzetfüzetek ugyanazon kódolási szabványainak érvényesítésére irányuló erőfeszítéseket.

Python black formatter library

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, amelyen black telepítve vannak a tokenize-rt Python-csomagok.

A Databricks Runtime 11.3 LTS-en és újabb verziókon 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-en és alatta a Python-formázó használatához telepítenie black==22.3.0 kell a tokenize-rt==4.2.1 PyPI-t a jegyzetfüzetre vagy a fürtre. A jegyzetfüzetben a következő parancsot futtathatja:

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

vagy telepítse a tárat a 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 fájl alapján pyproject.toml 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. Szerkessze 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 engedéllyel kell rendelkeznie a jegyzetfüzeten.

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ó.
    • 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 a használt %sql és %pythona .

  • A jegyzetfüzet összes Python- és SQL-cellájának formázása

    Válassza > szerkesztése lehetőséget. Ha a jegyzetfüzet több nyelvet is tartalmaz, csak az SQL- és Python-cellák vannak formázva. Ide tartoznak a használt %sql és %pythona .

A kódformázás korlátozásai

  • A Black a PEP 8 szabványt kényszeríti ki a 4 szóköz behúzására. 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 mellett jelenik meg.

A jegyzetfüzet alapértelmezett nyelve

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.

Cellanyelv legördülő menü

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 a rendszerhéjkód futtatását a jegyzetfüzetben. Ha a rendszerhéj-parancs nem nulla kilépési állapotú, akkor a cella sikertelenségéhez adja hozzá a -e beállítást. 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át dbutils teszi lehetővé. Ha például a dbutils.fs.ls parancs 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.

AZ SQL-cella eredményeinek felfedezé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 _sqldf változó nem érhető el olyan jegyzetfüzetekben, amelyek sql warehouse-t használnak a számításhoz.
  • A következő Python-cellák használata _sqldf a Databricks Runtime 13.3-ban és újabb verziókban támogatott.
  • A későbbi SQL-cellák használata _sqldf csak a Databricks Runtime 14.3-on és újabb verziókban támogatott.
  • Ha a lekérdezés a kulcsszavakat CACHE TABLE használja, vagy UNCACHE TABLEa _sqldf változó nem érhető el.

Az alábbi képernyőkép bemutatja, hogyan _sqldf használható a következő Python- és SQL-cellákban:

sql results dataframe

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.

Cella párhuzamos végrehajtása:

  1. Futtassa a cellát.

  2. Kattintson a Futtatás most parancsra. A cella azonnal végrehajtásra kerül.

    SQL-cella futtatása az aktuálisan futó cellával párhuzamosan

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.