Vývoj kódu v poznámkových blocích Databricks
Tato stránka popisuje, jak vyvíjet kód v poznámkových blocích Databricks, včetně automatického dokončování, automatického formátování pro Python a SQL, kombinování Pythonu a SQL v poznámkovém bloku a sledování historie verzí poznámkového bloku.
Další podrobnosti o pokročilých funkcích dostupných v editoru, jako je automatické dokončování, výběr proměnných, podpora více kurzorů a souběžné rozdíly, najdete v tématu Použití poznámkového bloku Databricks a editoru souborů.
Když používáte poznámkový blok nebo editor souborů, je nástroj Databricks Assistant k dispozici, který vám pomůže vygenerovat, vysvětlit a ladit kód. Další informace najdete v tématu Použití nástroje Databricks Assistant .
Poznámkové bloky Databricks také obsahují integrovaný interaktivní ladicí program pro poznámkové bloky Pythonu. Viz Ladicí poznámkové bloky.
Získání nápovědy k kódování od Databricks Assistantu
Databricks Assistant je pomocník umělé inteligence pracující s kontextem, se kterým můžete pracovat pomocí konverzačního rozhraní a zvýšit produktivitu v Databricks. Úkol můžete popsat v angličtině a nechat asistenta generovat kód Pythonu nebo dotazy SQL, vysvětlit složitý kód a automaticky opravit chyby. Pomocník používá metadata katalogu Unity k pochopení tabulek, sloupců, popisů a oblíbených datových prostředků ve vaší společnosti k poskytování přizpůsobených odpovědí.
Nástroj Databricks Assistant vám může pomoct s následujícími úlohami:
- Vygenerujte kód.
- Ladění kódu, včetně identifikace a navrhování oprav chyb
- Transformujte a optimalizujte kód.
- Vysvětlit kód
- Pomůže vám najít relevantní informace v dokumentaci k Azure Databricks.
Informace o používání nástroje Databricks Assistant, který vám pomůže efektivněji kódovat, najdete v tématu Použití Nástroje Databricks Assistant. Obecné informace o nástroji Databricks Assistant najdete v tématu Funkce využívající DatabricksIQ.
Přístup k poznámkovému bloku pro úpravy
Pokud chcete otevřít poznámkový blok, použijte funkci Hledání pracovního prostoru nebo pomocí prohlížeče pracovního prostoru přejděte do poznámkového bloku a klikněte na název nebo ikonu poznámkového bloku.
Procházet data
Pomocí prohlížeče schémat můžete prozkoumat objekty katalogu Unity dostupné pro poznámkový blok. Kliknutím na levou stranu poznámkového bloku otevřete prohlížeč schématu.
Tlačítko Pro vás zobrazí jenom ty objekty, které jste použili v aktuální relaci nebo které jste dříve označili jako oblíbené.
Při zadávání textu do pole Filtr se zobrazení změní tak, aby zobrazoval jenom objekty, které obsahují zadaný text. Zobrazí se pouze objekty, které jsou aktuálně otevřené nebo které byly otevřeny v aktuální relaci. Pole Filtr neprovádí úplné vyhledávání katalogů, schémat, tabulek a svazků dostupných pro poznámkový blok.
Nabídku kebab otevřete tak, že najedete myší na název objektu, jak je znázorněno na obrázku:
Pokud je objekt tabulkou, můžete udělat toto:
- Automaticky vytvořte a spusťte buňku, aby se zobrazil náhled dat v tabulce. V nové buňce vyberte náhled v nabídce kebabu pro tabulku.
- Zobrazení katalogu, schématu nebo tabulky v Průzkumníku katalogu V nabídce kebab vyberte Otevřít v Průzkumníku katalogu. Otevře se nová karta s vybraným objektem.
- Získejte cestu k katalogu, schématu nebo tabulce. Vyberte Kopírovat... cesta z nabídky kebab objektu.
- Přidejte tabulku k oblíbeným položkám. V nabídce kebab pro tabulku vyberte Přidat k oblíbeným položkám.
Pokud je objekt katalogem, schématem nebo svazkem, můžete zkopírovat cestu k objektu nebo ho otevřít v Průzkumníku katalogu.
Vložení názvu tabulky nebo sloupce přímo do buňky:
- Klikněte na kurzor v buňce v místě, kde chcete zadat název.
- Přesuňte kurzor na název tabulky nebo název sloupce v prohlížeči schématu.
- Klikněte na dvojitou šipku , která se zobrazí vpravo od názvu objektu.
Klávesové zkratky
Klávesové zkratky zobrazíte tak, že vyberete Klávesové zkratky nápovědy>. Dostupné klávesové zkratky závisí na tom, jestli je kurzor v buňce kódu (režim úprav) nebo ne (režim příkazů).
Paleta příkazů
Akce v poznámkovém bloku můžete rychle provádět pomocí palety příkazů. Pokud chcete otevřít panel akcí poznámkového bloku, klikněte v pravém dolním rohu pracovního prostoru nebo použijte klávesovou zkratku Cmd + Shift + P v macOS nebo Ctrl + Shift + P ve Windows.
Vyhledání a nahrazení textu
Pokud chcete najít a nahradit text v poznámkovém bloku, vyberte Upravit > hledání a nahrazení. Aktuální shoda je zvýrazněná oranžově a všechny ostatní shody jsou zvýrazněné žlutě.
Chcete-li nahradit aktuální shodu, klepněte na tlačítko Nahradit. Pokud chcete nahradit všechny shody v poznámkovém bloku, klikněte na Nahradit vše.
Chcete-li přecházet mezi shodami, klikněte na tlačítka Před a Další . Můžete také stisknout shift+enter a přejít na předchozí a další shody.
Pokud chcete nástroj najít a nahradit zavřete, klikněte nebo stiskněte klávesu Esc.
Spuštění vybraných buněk
Můžete spustit jednu buňku nebo kolekci buněk. Pokud chcete vybrat jednu buňku, klikněte na libovolné místo v buňce. Pokud chcete vybrat více buněk, podržte stisknutou Command
klávesu v systému MacOS nebo klávesu Ctrl
ve Windows a klikněte na buňku mimo text, jak je znázorněno na snímku obrazovky.
Pokud chcete spustit vybrané chování tohoto příkazu, závisí na clusteru, ke kterému je poznámkový blok připojený.
- V clusteru s Modulem Databricks Runtime 13.3 LTS nebo nižším se vybrané buňky spouští jednotlivě. Pokud dojde k chybě v buňce, provádění pokračuje s dalšími buňkami.
- V clusteru s modulem Databricks Runtime 14.0 nebo novějším nebo ve službě SQL Warehouse se vybrané buňky spouští jako dávka. Jakákoli chyba zastaví provádění a nelze zrušit provádění jednotlivých buněk. Pomocí tlačítka Přerušení můžete ukončit provádění všech buněk.
Modularizace kódu
Důležité
Tato funkce je ve verzi Public Preview.
S modulem Databricks Runtime 11.3 LTS a novějším můžete vytvářet a spravovat soubory zdrojového kódu v pracovním prostoru Azure Databricks a pak je podle potřeby importovat do svých poznámkových bloků.
Další informace o práci se soubory zdrojového kódu najdete v tématu Sdílení kódu mezi poznámkovými bloky Databricks a práce s moduly Python a R.
Spuštění vybraného textu
Kód nebo příkazy SQL můžete zvýraznit v buňce poznámkového bloku a spustit pouze tento výběr. To je užitečné, když chcete rychle iterovat kód a dotazy.
Zvýrazněte řádky, které chcete spustit.
Vyberte Spustit > vybraný text nebo použijte klávesovou zkratku
Ctrl
Enter
+Shift
+. Pokud není zvýrazněn žádný text, spustí spuštění vybraného textu aktuální řádek.
Pokud v buňce používáte smíšené jazyky, musíte do výběru zahrnout %<language>
řádek.
Spuštění vybraného textu také spustí sbalený kód, pokud je ve zvýrazněné volbě nějaký.
Podporují se speciální příkazy buněk, například %run
, %pip
a %sh
jsou podporovány.
Nelze použít možnost Spustit vybraný text v buňkách s více výstupními kartami (to znamená buňky, ve kterých jste definovali datový profil nebo vizualizaci).
Formátování buněk kódu
Azure Databricks poskytuje nástroje, které umožňují rychle a snadno formátovat kód Pythonu a SQL v buňkách poznámkových bloků. Tyto nástroje snižují úsilí o formátování kódu a pomáhají vynucovat stejné standardy kódování v poznámkových blocích.
Černá knihovna formátovače Pythonu
Důležité
Tato funkce je ve verzi Public Preview.
Azure Databricks podporuje formátování kódu Pythonu pomocí černého kódu v poznámkovém bloku. Poznámkový blok musí být připojený ke clusteru s nainstalovanými black
tokenize-rt
balíčky Pythonu.
Ve službě Databricks Runtime 11.3 LTS a novějších předinstalovaných black
tokenize-rt
a . Formátovací modul můžete použít přímo bez nutnosti instalovat tyto knihovny.
V Databricks Runtime 10.4 LTS a níže musíte do poznámkového bloku nebo clusteru nainstalovat black==22.3.0
a tokenize-rt==4.2.1
z PyPI použít formátovací modul Pythonu. V poznámkovém bloku můžete spustit následující příkaz:
%pip install black==22.3.0 tokenize-rt==4.2.1
nebo nainstalujte knihovnu do clusteru.
Další podrobnosti o instalaci knihoven najdete v tématu Správa prostředí Pythonu.
U souborů a poznámkových bloků ve složkách Databricks Git můžete na základě souboru nakonfigurovat formátovací modul Pythonu pyproject.toml
. Pokud chcete tuto funkci použít, vytvořte soubor v kořenovém pyproject.toml
adresáři složky Git a nakonfigurujte ho podle formátu konfigurace Black. Upravte v souboru oddíl [tool.black]. Konfigurace se použije při formátování libovolného souboru a poznámkového bloku v této složce Git.
Jak formátovat buňky Pythonu a SQL
Abyste mohli formátovat kód, musíte mít oprávnění CAN EDIT v poznámkovém bloku.
Azure Databricks používá knihovnu Gethue/sql-formatter k formátování SQL a černý formátovací modul pro Python.
Formátovací modul můžete aktivovat následujícími způsoby:
Formátování jedné buňky
- Klávesová zkratka: Stiskněte Cmd+Shift+F.
- Místní nabídka příkazu:
- Formát buňky SQL: V místní nabídce příkazu buňky SQL vyberte Formát SQL . Tato položka nabídky je viditelná jenom v buňkách poznámkového bloku SQL nebo v buňkách, které mají jazykovou
%sql
magii. - Formát buňky Pythonu: V místní nabídce příkazu buňky Pythonu vyberte Formát Pythonu . Tato položka nabídky je viditelná jenom v buňkách poznámkového bloku Pythonu nebo v buňkách s jazykovým
%python
magií.
- Formát buňky SQL: V místní nabídce příkazu buňky SQL vyberte Formát SQL . Tato položka nabídky je viditelná jenom v buňkách poznámkového bloku SQL nebo v buňkách, které mají jazykovou
- Nabídka Upravit poznámkový blok: Vyberte buňku Pythonu nebo SQL a pak vyberte Upravit > buňky formátu.
Formátování více buněk
Vyberte více buněk a pak vyberte Upravit > formát buněk. Pokud vyberete buňky ve více než jednom jazyce, formátují se jenom buňky SQL a Pythonu. To zahrnuje ty, které používají
%sql
a%python
.Formátování všech buněk Pythonu a SQL v poznámkovém bloku
Vyberte Upravit > formát poznámkového bloku. Pokud poznámkový blok obsahuje více jazyků, formátují se jenom buňky SQL a Pythonu. To zahrnuje ty, které používají
%sql
a%python
.
Omezení formátování kódu
- Black vynucuje standardy PEP 8 pro odsazení o velikosti 4 mezery. Odsazení není možné konfigurovat.
- Formátování vložených řetězců Pythonu uvnitř UDF SQL se nepodporuje. Podobně není formátování řetězců SQL uvnitř uživatelem definovaného uživatelem Pythonu podporované.
Historie verzí
Poznámkové bloky Azure Databricks udržují historii verzí poznámkových bloků, takže můžete zobrazit a obnovit předchozí snímky poznámkového bloku. U verzí můžete provádět následující akce: přidávat komentáře, obnovovat a odstraňovat verze a vymazat historii verzí.
Svou práci v Databricks můžete také synchronizovat se vzdáleným úložištěm Git.
Pokud chcete získat přístup k verzím poznámkového bloku, klikněte na pravý boční panel. Zobrazí se historie verzí poznámkového bloku. Můžete také vybrat historii verzí souboru>.
Přidat komentář
Přidání komentáře k nejnovější verzi:
Klikněte na verzi.
Klikněte na Uložit.
V dialogovém okně Uložit verzi poznámkového bloku zadejte komentář.
Klikněte na Uložit. Verze poznámkového bloku se uloží se zadaným komentářem.
Obnovení verze
Obnovení verze:
Klikněte na verzi.
Klikněte na Obnovit tuto verzi.
Klikněte na tlačítko Potvrdit. Vybraná verze se stane nejnovější verzí poznámkového bloku.
Odstranění verze
Odstranění položky verze:
Klikněte na verzi.
Klikněte na ikonu koše .
Klikněte na Ano, vymažte. Vybraná verze se odstraní z historie.
Vymazat historii verzí
Po vymazání nelze obnovit historii verzí.
Vymazání historie verzí poznámkového bloku:
- Vyberte Historii verzí Vymazat soubor>.
- Klikněte na Ano, zrušte zaškrtnutí. Historie verzí poznámkového bloku se vymaže.
Jazyky kódu v poznámkových blocích
Nastavení výchozího jazyka
Vedle názvu poznámkového bloku se zobrazí výchozí jazyk.
Pokud chcete změnit výchozí jazyk, klikněte na tlačítko jazyka a v rozevírací nabídce vyberte nový jazyk. Abyste zajistili, že existující příkazy budou dál fungovat, budou příkazy předchozího výchozího jazyka automaticky předponovány příkazem magic jazyka.
Mix jazyků
Ve výchozím nastavení používají buňky výchozí jazyk poznámkového bloku. Výchozí jazyk v buňce můžete přepsat kliknutím na tlačítko jazyka a výběrem jazyka z rozevírací nabídky.
Případně můžete použít příkaz %<language>
magic jazyka na začátku buňky. Podporované příkazy magic jsou: %python
, %r
, %scala
a %sql
.
Poznámka:
Když vyvoláte příkaz magic jazyka, příkaz se odešle do REPL v kontextu spuštění poznámkového bloku. Proměnné definované v jednom jazyce (a proto v REPL pro tento jazyk) nejsou k dispozici v REPL jiného jazyka. Seznamy REPLs můžou sdílet stav pouze prostřednictvím externích prostředků, jako jsou soubory v DBFS nebo objekty v úložišti objektů.
Poznámkové bloky také podporují několik pomocných příkazů magic:
%sh
: Umožňuje spustit v poznámkovém bloku kód prostředí. Pokud chcete buňku selhat, pokud má příkaz prostředí nenulový stav ukončení, přidejte možnost-e
. Tento příkaz běží jenom na ovladači Apache Spark, nikoli pracovních procesů. Ke spuštění příkazu prostředí na všech uzlech použijte inicializační skript.%fs
: Umožňuje používatdbutils
příkazy systému souborů. Pokud chcete například spustitdbutils.fs.ls
příkaz pro výpis souborů, můžete místo toho zadat%fs ls
. Další informace najdete v tématu Práce se soubory v Azure Databricks.%md
: Umožňuje zahrnout různé typy dokumentace, včetně textu, obrázků a matematických vzorců a rovnic. Postup najdete v další části.
Zvýraznění syntaxe SQL a automatické dokončování v příkazech Pythonu
Zvýraznění syntaxe a automatické dokončování SQL jsou k dispozici, když používáte SQL v příkazu Pythonu, například v spark.sql
příkazu.
Prozkoumání výsledků buněk SQL
V poznámkovém bloku Databricks se výsledky z buňky jazyka SQL automaticky zpřístupní jako implicitní datový rámec přiřazený _sqldf
proměnné . Tuto proměnnou pak můžete použít v libovolných buňkách Pythonu a SQL, které pak spustíte, bez ohledu na jejich pozici v poznámkovém bloku.
Poznámka:
Tato funkce má následující omezení:
- Proměnná
_sqldf
není k dispozici v poznámkových blocích, které pro výpočty používají SQL Warehouse . - Použití
_sqldf
v následujících buňkách Pythonu se podporuje v Databricks Runtime 13.3 a novějších. - Použití
_sqldf
v následujících buňkách SQL je podporováno pouze v Databricks Runtime 14.3 a vyšší. - Pokud dotaz používá klíčová slova
CACHE TABLE
neboUNCACHE TABLE
,_sqldf
proměnná není k dispozici.
Následující snímek obrazovky ukazuje, jak _sqldf
se dá použít v následujících buňkách Pythonu a SQL:
Důležité
Proměnná _sqldf
se znovu přiřazuje při každém spuštění buňky SQL. Pokud se chcete vyhnout ztrátě odkazu na konkrétní výsledek datového rámce, přiřaďte ho novému názvu proměnné před spuštěním další buňky SQL:
Python
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
Paralelní spouštění buněk SQL
Když je spuštěný příkaz a poznámkový blok je připojený k interaktivnímu clusteru, můžete spustit buňku SQL současně s aktuálním příkazem. Buňka SQL se spustí v nové paralelní relaci.
Paralelní spuštění buňky:
Klikněte na možnost Spustit. Buňka se okamžitě spustí.
Protože je buňka spuštěna v nové relaci, dočasná zobrazení, funkce definované uživatelem a implicitní datový rámec Pythonu (_sqldf
) nejsou podporovány pro buňky, které se spouští paralelně. Kromě toho se při paralelním provádění používají výchozí názvy katalogů a databází. Pokud váš kód odkazuje na tabulku v jiném katalogu nebo databázi, je nutné zadat název tabulky pomocí tříúrovňového oboru názvů (catalog
.schema
.).table
Spouštění buněk SQL ve službě SQL Warehouse
Příkazy SQL můžete spouštět v poznámkovém bloku Databricks ve službě SQL Warehouse, typ výpočetních prostředků, který je optimalizovaný pro analýzu SQL. Viz Použití poznámkového bloku se službou SQL Warehouse.
Zobrazení obrázků
Azure Databricks podporuje zobrazení obrázků v buňkách Markdownu. Můžete zobrazit obrázky uložené v pracovním prostoru, svazkech nebo filestore.
Zobrazení obrázků uložených v pracovním prostoru
K zobrazení obrázků uložených v pracovním prostoru můžete použít absolutní cesty nebo relativní cesty. Pokud chcete zobrazit obrázek uložený v pracovním prostoru, použijte následující syntaxi:
%md
![my_test_image](/Workspace/absolute/path/to/image.png)
![my_test_image](./relative/path/to/image.png)
Zobrazení obrázků uložených ve svazcích
K zobrazení obrázků uložených ve svazcích můžete použít absolutní cesty. Pokud chcete zobrazit obrázek uložený ve svazcích, použijte následující syntaxi:
%md
![my_test_image](/Volumes/absolute/path/to/image.png)
Zobrazení obrázků uložených v Úložišti souborů
Pokud chcete zobrazit obrázky uložené v FileStore, použijte následující syntaxi:
%md
![my_test_image](files/image.png)
Předpokládejme například, že máte soubor obrázku loga Databricks v FileStore:
dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png
Pokud do buňky Markdownu zahrnete následující kód:
obrázek se v buňce vykreslí:
Přetažení obrázků
Obrázky můžete přetáhnout z místního systému souborů do buněk Markdownu. Obrázek se nahraje do aktuálního adresáře pracovního prostoru a zobrazí se v buňce.
Zobrazení matematických rovnic
Poznámkové bloky podporují KaTeX pro zobrazení matematických vzorců a rovnic. Příklad:
%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)
\\(A{_i}{_j}=B{_i}{_j}\\)
$$c = \\pm\\sqrt{a^2 + b^2}$$
\\[A{_i}{_j}=B{_i}{_j}\\]
zobrazí jako:
a
%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)
where \\(\delta=(\beta - \mu_{t-1})\\)
zobrazí jako:
Zahrnout HTML
Kód HTML můžete do poznámkového bloku zahrnout pomocí funkce displayHTML
. Příklad tohoto postupu najdete v poznámkových blocích v html, D3 a SVG.
Poznámka:
Prvek displayHTML
iframe se obsluhuje z domény databricksusercontent.com
a sandbox prvku iframe obsahuje allow-same-origin
atribut. Doména databricksusercontent.com
musí být přístupná z prohlížeče. Pokud je v tuto chvíli zablokovaná podnikovou sítí, musíte ji přidat do seznamu povolených domén.
Odkaz na jiné poznámkové bloky
Pomocí relativních cest můžete propojit jiné poznámkové bloky nebo složky v buňkách Markdownu. href
Zadejte atribut značky ukotvení jako relativní cestu, počínaje řetězcem a $
pak postupujte podle stejného vzoru jako v systémech souborů unixu:
%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>