Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta sekcja zawiera szczegółowe informacje dotyczące deklaratywnego interfejsu programowania języka Python dla potoków Lakeflow Spark (SDP).
- Aby uzyskać informacje koncepcyjne i omówienie używania języka Python dla potoków, zobacz Develop pipeline code with Python (Opracowywanie kodu potoku przy użyciu języka Python).
- Aby uzyskać informacje na temat języka SQL, zobacz Dokumentację języka SQL potoku.
- Aby uzyskać szczegółowe informacje dotyczące konfigurowania automatycznego modułu ładującego, zobacz Co to jest moduł automatycznego ładowania?.
pipelines omówienie modułu
Funkcje Python dla deklaratywnych potoków Lakeflow Spark są definiowane w module pyspark.pipelines (zaimportowane jako dp). Rurociągi zaimplementowane za pomocą interfejsu API języka Python muszą zaimportować ten moduł.
from pyspark import pipelines as dp
Uwaga / Notatka
Moduł 'pipelines' jest dostępny tylko w kontekście potoku. Nie jest on dostępny w języku Python uruchomionym poza potokami. Aby uzyskać więcej informacji na temat edytowania kodu potoku, zobacz Tworzenie i debugowanie potoków ETL za pomocą Lakeflow Pipelines Editor.
Potoki danych Apache Spark™
Platforma Apache Spark obejmuje potoki deklaratywne od wersji Spark 4.1, dostępne za pośrednictwem modułu pyspark.pipelines. Środowisko Databricks Runtime rozszerza te funkcje typu open source o dodatkowe interfejsy API i integracje na potrzeby zarządzanego użycia produkcyjnego.
Kod napisany za pomocą modułu open source pipelines jest uruchamiany bez modyfikacji w usłudze Azure Databricks. Następujące funkcje nie są częścią platformy Apache Spark:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
Moduł pipelines był wcześniej nazywany dlt w usłudze Azure Databricks. Aby uzyskać szczegółowe informacje na temat różnic z platformy Apache Spark, zobacz Co się stało z @dlt?.
Funkcje dla definicji zestawów danych
Potoki danych używają dekoratorów języka Python do definiowania zestawów danych, takich jak widoki materializowane i tabele przesyłania strumieniowego. Zobacz Funkcje, aby zdefiniować zestawy danych.
Odniesienie do API
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Oczekiwania
- zmaterializowany_widok
- table
- temporary_view
Zagadnienia dotyczące potoków języka Python
Poniżej przedstawiono ważne aspekty dotyczące implementowania potoków za pomocą deklaratywnego interfejsu języka Python Spark Lakeflow (SDP):
- Protokół SDP ocenia kod, który definiuje potok wielokrotnie podczas planowania i uruchamiania potoku. Funkcje języka Python definiujące zestawy danych powinny zawierać tylko kod wymagany do zdefiniowania tabeli lub widoku. Dowolna logika języka Python zawarta w definicjach zestawu danych może prowadzić do nieoczekiwanego zachowania.
- Nie próbuj implementować niestandardowej logiki monitorowania w definicjach zestawu danych. Zobacz Definiowanie niestandardowego monitorowania potoków za pomocą hooków zdarzeń.
- Funkcja używana do definiowania zestawu danych musi zwracać ramkę danych platformy Spark. Nie uwzględniaj logiki w definicjach zestawu danych, które nie odnoszą się do zwracanej ramki danych.
- Nigdy nie używaj metod zapisywania lub pisania w plikach ani tabelach w ramach kodu zbioru danych potoku.
Przykłady operacji platformy Apache Spark, które nigdy nie powinny być używane w kodzie w potoku przetwarzania:
collect()count()toPandas()save()saveAsTable()start()toTable()
Co się stało z @dlt?
Wcześniej usługa Azure Databricks używała modułu dlt do obsługi funkcji potoku. Moduł dlt został zastąpiony przez moduł pyspark.pipelines. Nadal możesz używać dlt, ale Databricks zaleca użycie pipelines.
Różnice między bibliotekami DLT, SDP i Apache Spark
W poniższej tabeli przedstawiono różnice w składni i funkcjonalności między potokami DLT, Deklaratywnymi potokami Lakeflow Spark i Deklaratywnymi potokami Apache Spark.
| Area | Składnia DLT | Składnia protokołu SDP (Lakeflow i Apache, jeśli ma to zastosowanie) | Dostępne na platformie Apache Spark |
|---|---|---|---|
| Importy | import dlt |
from pyspark import pipelines (as dpopcjonalnie) |
Tak |
| Tabela strumieniowa |
@dlt.table z ramką danych strumieniowych |
@dp.table |
Tak |
| Zmaterializowany widok |
@dlt.table z ramką danych w trybie wsadowym |
@dp.materialized_view |
Tak |
| View | @dlt.view |
@dp.temporary_view |
Tak |
| Proces dołączania | @dlt.append_flow |
@dp.append_flow |
Tak |
| SQL — przesyłanie strumieniowe | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Tak |
| SQL — zmaterializowany | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Tak |
| SQL — przepływ | CREATE FLOW ... |
CREATE FLOW ... |
Tak |
| Dziennik zdarzeń | spark.read.table("event_log") |
spark.read.table("event_log") |
Nie. |
| Stosowanie zmian (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Nie. |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Nie. |
| Tryb ciągły | Konfiguracja potoku z wyzwalaczem stałym | (to samo) | Nie. |
| Zlew | @dlt.create_sink(...) |
dp.create_sink(...) |
Tak |