Lakeflow-pipelines Python språkreferens

Lakeflow-pipelines Python-gränssnittet definieras i modulen pyspark.pipelines som importeras som dp.

Modulen tillhandahåller decorators och funktioner för att definiera datamängder, flöden, sinks och datakvalitetsförväntningar. Serverlösa pipelines kör dessa definitioner utan att du behöver konfigurera kluster.

pipelines modulöversikt

Python-funktioner för Lakeflow Pipelines definieras i modulen pyspark.pipelines (importeras som dp). Dina pipelines som implementeras med Python-API:et måste importera den här modulen:

from pyspark import pipelines as dp

Anmärkning

Större delen av pipelinesmodulen är endast tillgänglig i kontexten av en pipeline. Mer information om hur du redigerar pipelinekod finns i Utveckla och felsöka ETL-pipelines med Lakeflow Pipelines Editor.

Du kan också använda @materialized_view och @table utanför en pipeline, i en notebook med serverlös allmän beräkning, för att definiera en fristående materialiserad vy eller streamingtabell. Se Definiera tabeller med dekoratörer för pipelines.

Apache Spark-pipelines™

Apache Spark innehåller deklarativa pipelines som börjar i Spark 4.1, tillgängliga via modulen pyspark.pipelines . Databricks Runtime utökar dessa funktioner med öppen källkod med ytterligare API:er och integreringar för hanterad produktionsanvändning.

Kod som skrivs med modulen med öppen källkod pipelines körs utan ändringar i Azure Databricks. Följande funktioner ingår inte i Apache Spark:

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

Modulen pipelines hette dlt tidigare i Azure Databricks. Mer information och mer information om skillnaderna från Apache Spark finns i Vad hände med @dlt?.

Funktioner för datauppsättningsdefinitioner

Pipelines använder Python-dekoratörer för att definiera datauppsättningar som materialiserade vyer och strömmande tabeller. Se Funktioner för att definiera datauppsättningar.

API-referensen

Kodningskrav för Python-pipelines

Följande är viktiga krav när du implementerar pipelines med Python-gränssnittet:

  • Ett pipelineflöde utvärderar sin källkod flera gånger under planering och körning. Python-funktioner som definierar datauppsättningar bör endast innehålla den kod som krävs för att definiera tabellen eller vyn. Godtycklig Python-logik som ingår i datamängdsdefinitioner kan leda till oväntat beteende.
  • Försök inte implementera anpassad övervakningslogik i dina datauppsättningsdefinitioner. Se Definiera specifik övervakning av pipelines med händelsekrokar.
  • Den funktion som används för att definiera en datauppsättning måste returnera en Spark DataFrame. Inkludera inte logik i datauppsättningsdefinitioner som inte är relaterade till en returnerad DataFrame.
  • Använd aldrig metoder som sparar eller skriver till filer eller tabeller som en del av din pipeline-datauppsättningskod.

Exempel på Apache Spark-åtgärder som aldrig ska användas i pipelinekod:

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

Vad hände med @dlt?

Tidigare använde Azure Databricks modulen dlt för att stödja pipelinefunktioner. Modulen dlt har ersatts av modulen pyspark.pipelines . Du kan fortfarande använda dlt, men Databricks rekommenderar att du använder pipelines.

Skillnader mellan DLT, Lakeflow-pipelines och Apache Spark™ deklarativa pipelines

Följande tabell visar skillnaderna i syntax och funktionalitet mellan DLT, Lakeflow-pipelines och Apache Spark™ Declarative Pipelines.

För en jämförelse på funktionsnivå av vad Lakeflow-pipelines delar med och lägger till i Apache Spark™ Declarative Pipelines, se Apache Spark Declarative Pipelines.

En egenskaps-för-egenskap-mappning av pipelinekonfigurationen till SDP-projektspecifikationen finns i Referens för pipelineegenskaper.

Anmärkning

I Databricks dokumentation kallas Databricks-produkten Lakeflow pipelines, och Apache Spark-projektet som den utökar är Apache Spark™ Declarative Pipelines (SDP). De två är interoperabla men skiljer sig åt i funktioner. Till exempel är AUTO CDC API:erna endast tillgängliga i Lakeflow-pipelines.

Area DLT-syntax SDP-syntax (Lakeflow och Apache, om tillämpligt) Tillgänglig i Apache Spark
Importer import dlt from pyspark import pipelines (as dpvalfritt) Yes
Direktuppspelningstabell @dlt.table med en strömmande dataram @dp.table Yes
Materialiserad vy @dlt.table med en batch-dataframe @dp.materialized_view Yes
View @dlt.view @dp.temporary_view Yes
Lägg till flöde @dlt.append_flow @dp.append_flow Yes
Uppdatera flöde Unavailable @dp.update_flow Nej
SQL – direktuppspelning CREATE STREAMING TABLE ... CREATE STREAMING TABLE ... Yes
SQL – materialiserad CREATE MATERIALIZED VIEW ... CREATE MATERIALIZED VIEW ... Yes
SQL – flöde CREATE FLOW ... CREATE FLOW ... Yes
Händelselogg spark.read.table("event_log") spark.read.table("event_log") Nej
Tillämpa ändringar (CDC) dlt.apply_changes(...) dp.create_auto_cdc_flow(...) Nej
Expectations @dlt.expect(...) dp.expect(...) Nej
Kontinuerligt läge Pipelinekonfiguration med kontinuerlig utlösare Pipelinekonfiguration med kontinuerlig utlösare Nej
Sjunka @dlt.create_sink(...) dp.create_sink(...) Yes
ForEachBatch sink Unavailable @dp.foreach_batch_sink(...) Nej
ForEach sink Unavailable @dp.foreach_sink(...) Nej