Python-taalreferentie voor Lakeflow-pijplijnen

De Python-interface voor Lakeflow-pijplijnen wordt gedefinieerd in de module pyspark.pipelines, geïmporteerd als dp.

pipelines moduleoverzicht

Lakeflow-pijplijnen Python functies worden gedefinieerd in de pyspark.pipelines module (geïmporteerd alsdp). Uw pijplijnen die zijn geïmplementeerd met de Python-API, moeten deze module importeren:

from pyspark import pipelines as dp

Opmerking

Het grootste deel van de pipelines-module is alleen beschikbaar in de context van een pipeline. Zie ETL-pijplijnen ontwikkelen en fouten opsporen met de Lakeflow Pipelines Editor voor meer informatie over het bewerken van pijplijncode.

Je kunt @materialized_view en @table ook buiten een pipeline toepassen, in een notebook op serverless algemene rekenkracht, om een zelfstandige gematerialiseerde weergave of streamingtabel te definiëren. Zie Definieer tabellen met de pipelines-decorators.

Apache Spark-pijplijnen™

Apache Spark bevat declaratieve pijplijnen vanaf Spark 4.1, die beschikbaar zijn via de pyspark.pipelines module. Databricks Runtime breidt deze opensource-mogelijkheden uit met aanvullende API's en integraties voor beheerd productiegebruik.

Code die is geschreven met de opensource-module pipelines wordt uitgevoerd zonder wijzigingen in Azure Databricks. De volgende functies maken geen deel uit van Apache Spark:

  • dp.create_auto_cdc_flow
  • dp.create_auto_cdc_from_snapshot_flow
  • @dp.expect(...)

De pipelines module werd eerder aangeroepen dlt in Azure Databricks. Zie Wat is er gebeurd met @dlt?voor meer informatie en meer informatie over de verschillen van Apache Spark.

Functies voor gegevenssetdefinities

Pijplijnen maken gebruik van Python-decorators voor het definiëren van gegevenssets, zoals gematerialiseerde weergaven en streamingtabellen. Zie Functions om gegevenssets te definiëren.

API-referentie

Codevereisten voor Python-pijplijnen

De volgende vereisten zijn belangrijke vereisten bij het implementeren van pipelines met de Python-interface:

  • Een pipeline evalueert zijn broncode meerdere keren tijdens de planning en uitvoeringen. Python-functies die gegevenssets definiëren, moeten alleen de code bevatten die nodig is om de tabel of weergave te definiëren. Willekeurige Python-logica die is opgenomen in gegevenssetdefinities kan leiden tot onverwacht gedrag.
  • Probeer geen aangepaste bewakingslogica te implementeren in uw gegevenssetdefinities. Zie Definieer de aangepaste bewaking van pijplijnen met event hooks.
  • De functie die wordt gebruikt om een gegevensset te definiëren, moet een Spark DataFrame retourneren. Neem geen logica op in uw gegevenssetdefinities die niet betrekking hebben op een geretourneerd DataFrame.
  • Gebruik nooit methoden die bestanden of tabellen opslaan of schrijven als onderdeel van uw pijplijngegevenssetcode.

Voorbeelden van Apache Spark-bewerkingen die nooit mogen worden gebruikt in pijplijncode:

  • collect()
  • count()
  • toPandas()
  • save()
  • saveAsTable()
  • start()
  • toTable()

Wat is er met @dlt gebeurd?

Voorheen gebruikte Azure Databricks de dlt module om pijplijnfunctionaliteit te ondersteunen. De dlt module is vervangen door de pyspark.pipelines module. U kunt nog steeds gebruiken dlt, maar Databricks raadt het gebruik pipelinesaan.

Verschillen tussen DLT-, Lakeflow-pijplijnen en Apache Spark-declaratieve pijplijnen

In de volgende tabel ziet u de verschillen in syntaxis en functionaliteit tussen DLT-, Lakeflow-pijplijnen en Apache Spark-declaratieve pijplijnen.

Zie Apache Spark-declaratieve pijplijnen voor een vergelijking op functieniveau van wat Lakeflow-pijplijnen delen en toevoegen aan Apache Spark-declaratieve pijplijnen.

Raadpleeg Naslaginformatie voor pijplijneigenschappen voor een eigenschap-voor-eigenschap-toewijzing van de pijplijnconfiguratie aan de SDP-projectspecificatie.

Opmerking

In de documentatie van Databricks heet het Databricks-product Lakeflow pipelines, en het Apache Spark-project dat het uitbreidt is Apache Spark™ Declarative Pipelines (SDP). De twee zijn interoperabel, maar verschillen in hun kenmerken. De AUTO CDC API's zijn bijvoorbeeld alleen beschikbaar in Lakeflow-pijpleidingen.

Area DLT-syntaxis SDP-syntaxis (Lakeflow en Apache, indien van toepassing) Beschikbaar in Apache Spark
Imports import dlt from pyspark import pipelines (as dp optioneel) Yes
Tabel voor streaming @dlt.table met een streaming-dataframe @dp.table Yes
Gerealiseerde weergave @dlt.table met een batch-dataframe @dp.materialized_view Yes
Bekijk @dlt.view @dp.temporary_view Yes
Stroom toevoegen @dlt.append_flow @dp.append_flow Yes
Flow bijwerken Unavailable @dp.update_flow Nee.
SQL : streamen CREATE STREAMING TABLE ... CREATE STREAMING TABLE ... Yes
SQL: gerealiseerd CREATE MATERIALIZED VIEW ... CREATE MATERIALIZED VIEW ... Yes
SQL - proces CREATE FLOW ... CREATE FLOW ... Yes
Gebeurtenislogboek spark.read.table("event_log") spark.read.table("event_log") Nee.
Wijzigingen toepassen (CDC) dlt.apply_changes(...) dp.create_auto_cdc_flow(...) Nee.
Expectations @dlt.expect(...) dp.expect(...) Nee.
Doorlopende modus Pijplijnconfiguratie met continue trigger (zelfde) Nee.
Zinken @dlt.create_sink(...) dp.create_sink(...) Yes
ForEachBatch-koppeling Unavailable @dp.foreach_batch_sink(...) Nee.