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 porovnání vedle sebe, najdete v tématu Navigace v poznámkovém bloku Databricks a editoru souborů.
Při použití poznámkového bloku nebo editoru souborů je asistent Databricks k dispozici, aby vám pomohl generate, explaina 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.
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.
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: SelectFormát SQL v kontextové rozevírací nabídce příkazu buňky 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 v Pythonu: SelectFormát Pythonu v rozbalovací nabídce kontextu příkazů buňky v 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: SelectFormát SQL v kontextové rozevírací nabídce příkazu buňky 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: úpravte Select buňku Pythonu nebo SQL, a pak zvolte selectFormát buněk >.
Formátování více buněk
Select více buněk a potom selectUpravit > Formát buněk. Pokud select buňky více než jednoho jazyka, formátují se pouze 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
Select 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é.
Jazyky kódu v poznámkových blocích
výchozí jazyk Set
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 select nový jazyk z rozevírací nabídky. 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 spustit příkazdbutils.fs.ls
pro list soubory, 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é views, uživatelsky definované funkce (UDFs) a implicitní Python DataFrame (_sqldf
) nejsou podporovány pro buňky, které se provádějí paralelně. Kromě toho se při paralelním provádění používají výchozí catalog a názvy databází. Pokud kód odkazuje na table v jiné catalog nebo databázi, je nutné zadat název table 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.