Sdílet prostřednictvím


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 blacktokenize-rt balíčky Pythonu.

Ve službě Databricks Runtime 11.3 LTS a novějších předinstalovaných blacktokenize-rta . 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 %sqlmagii.
      • 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 %pythonmagií.
    • 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.

Výchozí jazyk poznámkového bloku

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.

Rozevírací seznam jazyka buněk

Případně můžete použít příkaz %<language> magic jazyka na začátku buňky. Podporované příkazy magic jsou: %python, %r, %scalaa %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žívat dbutils příkazy systému souborů. Pokud chcete například spustit příkaz dbutils.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ý _sqldfpromě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 nebo UNCACHE 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:

Datový rámec výsledků 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:

  1. Spusťte buňku.

  2. Klikněte na možnost Spustit. Buňka se okamžitě spustí.

    Paralelní spuštění buňky SQL s aktuální spuštěnou buňkou

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.