Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Abschnitt enthält Details zur Python-Programmierschnittstelle von Lakeflow Spark Declarative Pipelines (SDP).
- Konzeptionelle Informationen und eine Übersicht über die Verwendung von Python für Pipelines finden Sie unter Entwickeln von Pipelinecode mit Python.
- Für die SQL-Referenz sehen Sie die SQL-Sprachreferenz für Pipeline.
- Ausführliche Informationen zum Konfigurieren des automatischen Ladevorgangs finden Sie unter Was ist das automatische Laden?.
pipelines Modulübersicht
Lakeflow Spark Declarative Pipelines Python-Funktionen werden im pyspark.pipelines Modul definiert (importiert als dp). Ihre mit der Python-API implementierten Pipelines müssen dieses Modul importieren:
from pyspark import pipelines as dp
Hinweis
Das Pipelinemodul ist nur im Kontext einer Pipeline verfügbar. Sie ist in Python, die außerhalb von Pipelines ausgeführt wird, nicht verfügbar. Weitere Informationen zum Bearbeiten von Pipelinecode finden Sie unter Entwickeln und Debuggen von ETL-Pipelines mit dem Lakeflow Pipelines Editor.
Apache Spark-Pipelines™
Apache Spark enthält deklarative Pipelines ab Spark 4.1, die über das pyspark.pipelines Modul verfügbar sind. Die Databricks-Runtime erweitert diese Open Source-Funktionen mit zusätzlichen APIs und Integrationen für die verwaltete Produktionsverwendung.
Code, der mit dem Open-Source-Modul pipelines geschrieben wurde, wird ohne Änderung in Azure Databricks ausgeführt. Die folgenden Features sind nicht Teil von Apache Spark:
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
Das Modul pipelines wurde zuvor in Azure Databricks dlt genannt. Ausführliche Informationen und weitere Informationen zu den Unterschieden von Apache Spark finden Sie unter Was ist passiert @dlt?.
Funktionen für Datasetdefinitionen
Pipelines verwenden Python-Dekoratoren zum Definieren von Datasets wie materialisierte Ansichten und Streamingtabellen. Informationen zum Definieren von Datasets finden Sie unter "Funktionen".
API-Referenz
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Erwartungshaltung
- materialisierte Ansicht
- Tabelle
- temporary_view
Überlegungen zu Python-Pipelines
Im Folgenden finden Sie wichtige Überlegungen beim Implementieren von Pipelines mit der Python-Schnittstelle "Lakeflow Spark Declarative Pipelines (SDP)":
- SDP wertet den Code aus, der eine Pipeline während der Planung und Pipelineausführung mehrmals definiert. Python-Funktionen, die Datasets definieren, sollten nur den Code enthalten, der zum Definieren der Tabelle oder Ansicht erforderlich ist. Beliebige Python-Logik, die in Datasetdefinitionen enthalten ist, kann zu unerwartetem Verhalten führen.
- Versuchen Sie nicht, benutzerdefinierte Überwachungslogik in Ihren Datasetdefinitionen zu implementieren. Siehe Definieren der benutzerdefinierten Überwachung von Pipelines mit Ereignishaken.
- Die Zum Definieren eines Datasets verwendete Funktion muss einen Spark DataFrame zurückgeben. Fügen Sie keine Logik in Ihre Datasetdefinitionen ein, die nicht mit einem zurückgegebenen DataFrame zusammenhängen.
- Verwenden Sie niemals Methoden, die als Teil des Pipeline-Datasetcodes in Dateien oder Tabellen speichern oder schreiben.
Beispiele für Apache Spark-Vorgänge, die niemals im Pipelinecode verwendet werden sollten:
collect()count()toPandas()save()saveAsTable()start()toTable()
Was ist passiert @dlt?
Zuvor verwendeten Azure Databricks das dlt Modul zur Unterstützung von Pipelinefunktionen. Das dlt Modul wurde durch das pyspark.pipelines Modul ersetzt. Sie können weiterhin verwenden dlt, aber Databricks empfiehlt die Verwendung pipelines.
Unterschiede zwischen DLT, SDP und Apache Spark
Die folgende Tabelle zeigt die Unterschiede in der Syntax und Funktionalität zwischen DLT, Lakeflow Spark Declarative Pipelines und Apache Spark Declarative Pipelines.
| Area | DLT-Syntax | SDP-Syntax (Lakeflow und Apache, sofern zutreffend) | Verfügbar in Apache Spark |
|---|---|---|---|
| Importe | import dlt |
from pyspark import pipelines (as dpoptional) |
Yes |
| Streamingtabelle |
@dlt.table mit einem Streaming-Dataframe |
@dp.table |
Yes |
| Materialisierte Ansicht |
@dlt.table mit einem Batch-Dataframe |
@dp.materialized_view |
Yes |
| Ansicht | @dlt.view |
@dp.temporary_view |
Yes |
| Anfügefluss | @dlt.append_flow |
@dp.append_flow |
Yes |
| SQL – Streaming | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Yes |
| SQL – materialisiert | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Yes |
| SQL – Ablauf | CREATE FLOW ... |
CREATE FLOW ... |
Yes |
| Ereignisprotokoll | spark.read.table("event_log") |
spark.read.table("event_log") |
Nein |
| Änderungen übernehmen (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Nein |
| Erwartungshaltung | @dlt.expect(...) |
dp.expect(...) |
Nein |
| Fortlaufender Modus | Pipelinekonfiguration mit fortlaufendem Trigger | (identisch) | Nein |
| Spüle | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |