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ů.

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í debugger pro poznámkové bloky Pythonu. Podívejte se na Ladicí bloky poznámek.

Modularizace kódu

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

Na Databricks Runtime 11.3 LTS a novějších Azure Databricks předinstaluje black a tokenize-rt. Formátovací modul můžete použít přímo bez nutnosti instalovat tyto knihovny.

V Databricks Runtime 10.4 LTS nebo starší musíte nainstalovat black==22.3.0 a tokenize-rt==4.2.1 z PyPI do poznámkového bloku nebo clusteru, abyste mohli použít formátovač 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 nakonfigurovat Python formátovací modul na základě souboru 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.
    • Nabídka příkazového kontextu
      • Formát buňky SQL: Vyberte Formát SQL v rozevírací nabídce kontextu 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í jazykové %sqlkouzlo.
      • Formátování Python buňky: V kontextovém menu buňky Python vyberte možnost Formát Python. Tato položka nabídky je viditelná jenom v buňkách poznámkového bloku Pythonu nebo v buňkách s jazykovou %pythonmagii.
    • Nabídka Upravit poznámkový blok: Vyberte buňku Pythonu nebo SQL a pak vyberte Upravit > Formát buněk.
  • 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.

Pokud chcete přizpůsobit formátování dotazů SQL, podívejte se na příkazy SQL vlastního formátu.

Omezení formátování kódu

  • Black přísně dodržuje standardy PEP 8 pro čtyřmezerové odsazení. Odsazení nejde upravit dle potřeby.
  • Formátování vložených řetězců Pythonu uvnitř UDF SQL se nepodporuje. Podobně není formátování SQL řetězců uvnitř uživatelsky definované funkce Pythonu podporováno.

Jazyky kódu v notebooku

Nastavení výchozího jazyka

Pod názvem 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 v rozevírací nabídce vyberte nový jazyk. Aby bylo zajištěno, že stávající příkazy budou dál fungovat, jsou příkazy předchozího výchozího jazyka automaticky opatřeny příkazem pro nastavení jazyka.

Smíchat jazyky

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.

Jazykový rozbalovací seznam

Případně můžete na začátku buňky použít jazykový příkaz magie %<language>. Podporované příkazy magic jsou: %python, %r, %scalaa %sql.

Poznámka:

Když vyvoláte příkaz jazyka magic, příkaz se odešle do REPL v prostředí provádění pro tento poznámkový blok. Proměnné definované v jednom jazyce (a proto v REPL pro tento jazyk) nejsou k dispozici v REPL jiného jazyka. REPLy mohou sdílet stav pouze prostřednictvím externích prostředků, jako jsou soubory v DBFS nebo objekty v objektovém úložišti.

Poznámkové bloky také podporují několik pomocných "magic" příkazů.

  • %sh: Umožňuje spustit shell kód v programátorském poznámkovém bloku. Aby buňka selhala, pokud příkaz prostředí skončí s nenulovým stavem ukončení, přidejte možnost -e. Tento příkaz se spouští pouze na ovladači Apache Spark, nikoli na pracovnících. Ke spuštění shellového příkazu 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 dbutils.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.

Prozkoumejte výsledky buněk SQL

V poznámkovém bloku Databricks se výsledky z buňky jazyka SQL automaticky zpřístupňují jako implicitní datový rámec přiřazený proměnné _sqldf. 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. V nové paralelní relaci se spustí buňka SQL.

Spuštění buňky v paralelním režimu:

  1. Spusťte buňku.

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

    Paralelně spusťte buňku SQL s aktuální spuštěnou buňkou.

Protože je buňka spuštěna v nové relaci, dočasná zobrazení, uživatelem definované funkce (UDFs) a implicitní datový rámec Pythonu (_sqldf) nejsou podporovány u buněk, které se vykonávají 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.

Spouštění kódu v Nástroji Assistant na bezserverových výpočetních prostředcích

Kód můžete spustit v Pomocníkovi v Databricks na bezserverových výpočetních prostředcích, což je výchozí výpočetní výkon v Databricks. Pro stránky, kde už je vybraný výpočetní objekt (například poznámkové bloky nebo editor SQL), databricks ho standardně používá. Informace o typech výpočetních prostředků najdete v tématu Výpočty.

Pokud nemáte přístup k bezserverovým výpočetním prostředkům, musíte mít k dispozici výpočetní instanci pro spuštění kódu na panelu Pomocník.

Použijte magické příkazy

Poznámkové bloky Databricks podporují různé magické příkazy, které rozšiřují funkčnost nad rámec standardní syntaxe a zjednodušují běžné úlohy. Magické příkazy mají předponu % pro liniové a buňkové magie.

Kouzelný příkaz Příklad Description
%python %python
print("Hello")
Přepněte jazyk buňky do Pythonu. Spustí kód Pythonu v buňce.
%r %r
print("Hello")
Přepněte jazyk buňky na R. Spustí kód R v buňce.
%scala %scala
println("Hello")
Přepněte jazyk buňky na Scala. Spustí kód Scala v buňce.
%sql %sql
SELECT * FROM table
Přepněte jazyk buňky na SQL. Výsledky jsou k dispozici jako _sqldf v buňkách Pythonu nebo SQL.
%md %md
# Title
Content here
Přepněte jazyk buňky na Markdown. Vykreslí obsah Markdownu v buňce. Podporuje text, obrázky, vzorce a LaTeX.
%pip %pip install pandas Nainstalujte balíčky Pythonu (v rámci poznámkového bloku). Viz Python knihovny pro poznámkové bloky.
%run %run /path/to/notebook Spusťte další poznámkový blok a importujte jeho funkce a proměnné. Viz pracovní postupy poznámkového bloku.
%fs %fs ls /path Spusťte příkazy systému souborů dbutils. Zkrácená forma pro dbutils.fs příkazy. Viz Práce se soubory.
%sh %sh ls -la Spusťte příkazy shellu. Spouští se jenom na uzlu ovladače. Použijte -e k selhání v případě chyby.
%tensorboard %tensorboard --logdir /logs Zobrazí uživatelské rozhraní TensorBoardu přímo v řádku. K dispozici pouze pro Databricks Runtime ML. Viz TensorBoard.
%set_cell_max_output_size_in_mb %set_cell_max_output_size_in_mb 10 Nastavte maximální velikost výstupu buňky. Rozsah: 1–20 MB. Platí pro všechny následující buňky v poznámkovém bloku.
%skip %skip
print("This won't run")
Přeskočte provádění buněk. Zabrání spuštění buňky při spuštění poznámkového bloku.

Poznámka:

IPython Automagic: Poznámkové bloky Databricks mají ve výchozím nastavení povolenou automatickou magii IPythonu, což umožňuje fungování některých příkazů pip bez předpony %. Například pip install pandas funguje stejně jako %pip install pandas.

Důležité

  • Proměnné a stav jsou izolované mezi různými jazykovými prostředími REPL. Například proměnné Pythonu nejsou v buňkách Scala přístupné.
  • Buňka poznámkového bloku může mít jenom jeden příkaz magic buňky a musí to být první řádek buňky.
  • %run musí být v samostatné buňce, protože jej spouští v rámci celého poznámkového bloku.
  • Při použití %pip v Databricks Runtime 12.2 LTS a níže umístěte všechny instalační příkazy balíčku na začátek poznámkového bloku, protože stav Pythonu se po instalaci resetuje.