Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kod języka Python można przechowywać w folderach Git usługi Databricks lub w plikach obszaru roboczego , a następnie zaimportować ten kod do swojego potoku. Aby uzyskać więcej informacji na temat pracy z modułami w folderach Git lub plikach obszaru roboczego, zobacz Praca z modułami python i R.
Aby zaimportować plik w języku Python, masz wiele opcji:
- Dołącz moduł języka Python do potoku jako plik użytkowy. Działa to najlepiej, jeśli moduł jest specyficzny dla pipeline'u.
- Dodaj udostępniony moduł do środowiska potokowego w każdym potoku, który go potrzebuje.
- Zaimportuj moduł w obszarze roboczym bezpośrednio do kodu źródłowego Python, używając instrukcji
import.
Dołączanie modułu Python do pipeline'u
Moduł języka Python można utworzyć w ramach ciągu przetwarzania. Folder główny potoku danych jest automatycznie dodawany do sys.path. Dzięki temu można odwoływać się bezpośrednio do modułu w kodzie źródłowym Python dla potoku.
W poniższym przykładzie pokazano tworzenie modułu języka Python w folderze głównym potoku i odwoływanie się do niego z pliku źródłowego języka Python w źródle potoku:
Otwórz pipeline w edytorze pipeline.
Po lewej stronie w przeglądarce zasobów rurociągu kliknij
Dodaj, a następnie wybierz pozycję Narzędzie z menu.
Wprowadź
my_utils.pydla Nazwa.Pozostaw ścieżkę domyślną, a następnie kliknij przycisk Utwórz.
Spowoduje to utworzenie
my_utils.pypliku wutilitiesfolderze potoku i utworzenieutilitiesfolderu, jeśli nie istnieje. Pliki w tym folderze nie są domyślnie dodawane do źródła potoku, ale są dostępne do wywołania z.pyplików będących częścią kodu źródłowego.Domyślnie plik narzędzia ma przykładową funkcję o nazwie
distance_km(), która zajmuje odległość w milach i konwertuje ją.W pliku źródłowym języka Python w folderze transformacji (możesz go utworzyć, wybierając
Dodaj, a następnie wybierz pozycję Przekształcenie z menu), dodaj następujący kod:
from utilities import my_utils
Teraz można wywoływać funkcje z my_utils tego pliku języka Python. Należy dodać instrukcję import z dowolnego pliku języka Python, który musi wywoływać funkcje w module.
Dodaj moduł języka Python do środowiska pipeline'u
Jeśli chcesz udostępnić moduł języka Python w wielu potokach, możesz zapisać moduł w dowolnym miejscu w plikach obszaru roboczego i odwołać się do niego ze środowiska dowolnego potoku, który musi go używać. Możesz odwoływać się do modułów języka Python, które są następujące:
- Pojedyncze pliki języka Python (
.py). - Projekt Pythona spakowany jako plik typu wheel (
.whl). - Rozpakowany projekt języka Python z plikiem
pyproject.toml(w celu zdefiniowania nazwy i wersji projektu).
W poniższym przykładzie pokazano, jak dodać zależność do pipeline’u.
Otwórz pipeline w edytorze pipeline.
Kliknij
Ustawienia na górnym pasku.
W wysuwanym oknie Ustawienia potoku, w sekcji Środowisko potoku, kliknij
Edytuj środowisko.
Dodaj zależność. Na przykład aby dodać plik w obszarze roboczym, możesz dodać element
/Volumes/libraries/path/to/python_files/file.py. W przypadku koła języka Python przechowywanego w folderach Git ścieżka może wyglądać następująco:/Workspace/libraries/path/to/wheel_files/file.whl.Możesz dodać plik bez ścieżki lub ścieżkę względną, jeśli znajduje się w folderze głównym potoku.
Uwaga / Notatka
Możesz również dodać ścieżkę do folderu udostępnionego przy użyciu zależności, aby umożliwić import instrukcjom w kodzie znalezienie modułów, które chcesz zaimportować. Na przykład -e /Workspace/Users/<user_name>/path/to/add/.
Importowanie modułu języka Python przy użyciu instrukcji import
Możesz również bezpośrednio odwołać się do pliku workspace w kodzie źródłowym języka Python.
Jeśli plik znajduje się w
utilitiesfolderze potoku, możesz do niego odwołać się bez ścieżki:from utilities import my_moduleJeśli plik znajduje się gdziekolwiek indziej, możesz go zaimportować, dołączając najpierw ścieżkę modułu do elementu
sys.path:import sys, os sys.path.append(os.path.abspath('<module-path>')) from my_module import *Możesz również dołączyć do
sys.pathelementu dla wszystkich plików źródłowych potoku, dodając ścieżkę do środowiska potoku zgodnie z opisem w poprzedniej sekcji.
Przykład importowania zapytań jako modułów języka Python
W poniższym przykładzie pokazano importowanie zapytań zestawu danych jako modułów języka Python z plików obszaru roboczego. Mimo że w tym przykładzie opisano używanie plików obszaru roboczego do przechowywania kodu źródłowego potoku, można go także użyć z kodem źródłowym przechowywanym w folderze Git.
Aby uruchomić ten przykład, wykonaj następujące kroki:
Kliknij
Obszar roboczy na pasku bocznym obszaru roboczego usługi Azure Databricks, aby otworzyć przeglądarkę obszaru roboczego.
Użyj przeglądarki obszaru roboczego, aby wybrać katalog dla modułów języka Python.
Kliknij
W prawej kolumnie wybranego katalogu i kliknij pozycję Utwórz > plik.
Wprowadź nazwę pliku, na przykład
clickstream_raw_module.py. Zostanie otwarty edytor plików. Aby utworzyć moduł odczytu danych źródłowych do tabeli, wprowadź następujące polecenie w oknie edytora:from pyspark import pipelines as dp json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json" def create_clickstream_raw_table(spark): @dp.table def clickstream_raw(): return ( spark.read.json(json_path) )Aby utworzyć moduł, który tworzy nową tabelę zawierającą przygotowane dane, utwórz nowy plik w tym samym katalogu, wprowadź nazwę pliku, na przykład
clickstream_prepared_module.pyi wprowadź następujące polecenie w nowym oknie edytora:from clickstream_raw_module import * from pyspark import pipelines as dp from pyspark.sql.functions import * from pyspark.sql.types import * def create_clickstream_prepared_table(spark): create_clickstream_raw_table(spark) @dp.table @dp.expect("valid_current_page_title", "current_page_title IS NOT NULL") @dp.expect_or_fail("valid_count", "click_count > 0") def clickstream_prepared(): return ( spark.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") )Następnie utwórz plik Python w źródle pipeline. W edytorze potoku wybierz
Dodaj, a następnie transformację.
Nadaj plikowi nazwę i potwierdź, że język Python jest językiem domyślnym.
Kliknij pozycję Utwórz.
Wprowadź poniższy przykładowy kod w notesie.
Uwaga / Notatka
Jeśli notebook importuje moduły lub pakiety ze ścieżki plików obszaru roboczego lub ścieżki folderów Git innej niż katalog notebooka, należy ręcznie dołączyć ścieżkę do plików przy użyciu
sys.path.append().Jeśli importujesz plik z folderu Git, musisz dodać na początku
/Workspace/na początku ścieżki. Na przykładsys.path.append('/Workspace/...'). Pominięcie/Workspace/ze ścieżki powoduje wystąpienie błędu.Jeśli moduły lub pakiety są przechowywane w tym samym katalogu co notes, nie trzeba ręcznie dołączać ścieżki. Nie trzeba również ręcznie dołączać ścieżki podczas importowania z katalogu głównego folderu Git, ponieważ katalog główny jest automatycznie dołączany do ścieżki.
import sys, os sys.path.append(os.path.abspath('<module-path>')) from pyspark import pipelines as dp from clickstream_prepared_module import * from pyspark.sql.functions import * from pyspark.sql.types import * create_clickstream_prepared_table(spark) @dp.table( comment="A table containing the top pages linking to the Apache Spark page." ) def top_spark_referrers(): return ( spark.read.table("catalog_name.schema_name.clickstream_prepared") .filter(expr("current_page_title == 'Apache_Spark'")) .withColumnRenamed("previous_page_title", "referrer") .sort(desc("click_count")) .select("referrer", "click_count") .limit(10) )Zastąp
<module-path>ścieżką do katalogu zawierającego moduły języka Python do zaimportowania.Aby uruchomić potok, kliknij pozycję Uruchom potok.