Import modulů Pythonu ze složek Gitu nebo souborů pracovního prostoru
Kód Pythonu můžete uložit do složek Gitu Databricks nebo do souborů pracovního prostoru a pak tento kód Pythonu importovat do kanálů Delta Live Tables. Další informace o práci s moduly ve složkách Gitu nebo souborech pracovních prostorů najdete v tématu Práce s moduly Pythonu a R.
Poznámka:
Zdrojový kód nemůžete importovat z poznámkového bloku uloženého ve složce Databricks Git nebo ze souboru pracovního prostoru. Místo toho přidejte poznámkový blok přímo při vytváření nebo úpravě kanálu. Viz Konfigurace kanálu delta živých tabulek.
Import modulu Pythonu do kanálu Delta Live Tables
Následující příklad ukazuje import dotazů datové sady jako modulů Pythonu ze souborů pracovního prostoru. I když tento příklad popisuje použití souborů pracovního prostoru k uložení zdrojového kódu kanálu, můžete ho použít se zdrojovým kódem uloženým ve složce Git.
Pokud chcete spustit tento příklad, použijte následující kroky:
Kliknutím na Pracovní prostor na bočním panelu pracovního prostoru Azure Databricks otevřete prohlížeč pracovního prostoru.
Pomocí prohlížeče pracovního prostoru vyberte adresář pro moduly Pythonu.
Klikněte do pravého sloupce vybraného adresáře a klikněte na Vytvořit > soubor.
Zadejte název souboru,
clickstream_raw_module.py
například . Otevře se editor souborů. Pokud chcete vytvořit modul pro čtení zdrojových dat do tabulky, zadejte do okna editoru následující:from dlt import * json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json" def create_clickstream_raw_table(spark): @table def clickstream_raw(): return ( spark.read.json(json_path) )
Pokud chcete vytvořit modul, který vytvoří novou tabulku obsahující připravená data, vytvořte nový soubor ve stejném adresáři, zadejte název souboru,
clickstream_prepared_module.py
například , a do nového okna editoru zadejte následující:from clickstream_raw_module import * from dlt import read from pyspark.sql.functions import * from pyspark.sql.types import * def create_clickstream_prepared_table(spark): create_clickstream_raw_table(spark) @table @expect("valid_current_page_title", "current_page_title IS NOT NULL") @expect_or_fail("valid_count", "click_count > 0") def clickstream_prepared(): return ( read("clickstream_raw") .withColumn("click_count", expr("CAST(n AS INT)")) .withColumnRenamed("curr_title", "current_page_title") .withColumnRenamed("prev_title", "previous_page_title") .select("current_page_title", "click_count", "previous_page_title") )
Dále vytvořte poznámkový blok kanálu. Přejděte na cílovou stránku Azure Databricks a vyberte Vytvořit poznámkový blok, nebo na bočním panelu klikněte na Nový a vyberte Poznámkový blok. Poznámkový blok můžete také vytvořit v prohlížeči pracovního prostoru kliknutím a kliknutím na Vytvořit > poznámkový blok.
Pojmenujte poznámkový blok a ověřte, že Python je výchozím jazykem.
Klikněte na Vytvořit.
Do poznámkového bloku zadejte ukázkový kód.
Poznámka:
Pokud váš poznámkový blok importuje moduly nebo balíčky z cesty k souborům pracovního prostoru nebo cesty ke složkám Gitu, které se liší od adresáře poznámkového bloku, musíte cestu k souborům připojit ručně pomocí
sys.path.append()
.Pokud importujete soubor ze složky Git, musíte
/Workspace/
před ním přejít. Napříkladsys.path.append('/Workspace/...')
. Vynechání/Workspace/
cesty způsobí chybu.Pokud jsou moduly nebo balíčky uložené ve stejném adresáři jako poznámkový blok, nemusíte cestu připojovat ručně. Při importu z kořenového adresáře složky Git také nemusíte cestu přidávat ručně, protože kořenový adresář se k cestě automaticky připojí.
import sys, os # You can omit the sys.path.append() statement when the imports are from the same directory as the notebook. sys.path.append(os.path.abspath('<module-path>')) import dlt from clickstream_prepared_module import * from pyspark.sql.functions import * from pyspark.sql.types import * create_clickstream_prepared_table(spark) @dlt.table( comment="A table containing the top pages linking to the Apache Spark page." ) def top_spark_referrers(): return ( dlt.read("clickstream_prepared") .filter(expr("current_page_title == 'Apache_Spark'")) .withColumnRenamed("previous_page_title", "referrer") .sort(desc("click_count")) .select("referrer", "click_count") .limit(10) )
Nahraďte
<module-path>
cestou k adresáři obsahujícímu moduly Pythonu, které se mají importovat.Vytvořte kanál pomocí nového poznámkového bloku.
Pokud chcete kanál spustit, klikněte na stránce Podrobnosti kanálu na Start.
Kód Pythonu můžete také importovat jako balíček. Následující fragment kódu z poznámkového bloku Delta Live Tables importuje test_utils
balíček z dlt_packages
adresáře ve stejném adresáři jako poznámkový blok. Adresář dlt_packages
obsahuje soubory test_utils.py
a __init__.py
definuje test_utils.py
funkci create_test_table()
:
import dlt
@dlt.table
def my_table():
return dlt.read(...)
# ...
import dlt_packages.test_utils as test_utils
test_utils.create_test_table(spark)