Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet innehåller information om Python-programmeringsgränssnittet Lakeflow Spark Deklarativa pipelines (SDP).
- Konceptuell information och en översikt över hur du använder Python för pipelines finns i Utveckla pipelinekod med Python.
- SQL-referens finns i SQL-språkreferensen för pipeline.
- Mer information om hur du konfigurerar automatisk inläsning finns i Vad är automatisk inläsning?.
pipelines modulöversikt
Python-funktioner för Lakeflow Spark deklarativa 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
Modulen pipelines är endast tillgänglig i kontexten för en pipeline. Den är inte tillgänglig i Python som körs utanför pipelines. Mer information om hur du redigerar pipelinekod finns i Utveckla och felsöka ETL-pipelines med Lakeflow Pipelines Editor.
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_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
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
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Förväntningar
- materialized_view
- table
- temporary_view
Överväganden för Python-pipelines
Följande är viktiga överväganden när du implementerar pipelines med Python-gränssnittet Lakeflow Spark Declarative Pipelines (SDP):
- SDP utvärderar koden som definierar en pipeline flera gånger under planerings- och pipelinekörningar. 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, SDP och Apache Spark
Följande tabell visar skillnaderna i syntax och funktioner mellan DLT, Lakeflow Spark Deklarativa Pipelines, och Apache Spark Deklarativa 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 |
| 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 | (samma) | Nej |
| Sjunka | @dlt.create_sink(...) |
dp.create_sink(...) |
Yes |