Lakeflow-Pipelines Python Sprachreferenz

Die Lakeflow-Pipelines-Python-Schnittstelle ist im Modul pyspark.pipelines definiert, das als dp importiert wird.

pipelines Modulübersicht

Lakeflow-Pipelines Python Funktionen werden im pyspark.pipelines Modul definiert (importiert alsdp). 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_flow
  • dp.create_auto_cdc_from_snapshot_flow
  • @dp.expect(...)

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

Codierungsanforderungen für Python-Pipelines

Es folgen wichtige Anforderungen beim Implementieren von Pipelines mit den Lakeflow-Pipelines Python Schnittstelle:

  • Lakeflow-Pipelines bewerten den Code, 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-, Lakeflow-Pipelines und Apache Spark Declarative Pipelines

Die folgende Tabelle zeigt die Unterschiede in der Syntax und Funktionalität zwischen DLT-, Lakeflow-Pipelines und Apache Spark Declarative Pipelines.

Einen Vergleich auf Feature-Ebene dessen, was Lakeflow-Pipelines mit Apache Spark Declarative Pipelines gemeinsam haben und was sie darüber hinaus hinzufügen, finden Sie unter Apache Spark Declarative Pipelines.

Eine Eigenschafts-nach-Eigenschaft-Zuordnung der Pipelinekonfiguration zur SDP-Projektspezifikation finden Sie unter Pipelineeigenschaftenreferenz.

Hinweis

In der Databricks-Dokumentation wird das Databricks-Produkt als Lakeflow-Pipelines bezeichnet, und das Open-Source-Framework, das es erweitert, ist Apache Spark™ Declarative Pipelines (SDP). Die beiden sind interoperabel, unterscheiden sich jedoch in den Features, z. B. sind die AUTO CDC APIs nur in Lakeflow-Pipelines verfügbar.

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
Update-Ablauf Nicht verfügbar @dp.update_flow Nein
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
ForEachBatch Senke Nicht verfügbar @dp.foreach_batch_sink(...) Nein