Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze sectie bevat details voor de Python-programmeerinterface van Lakeflow Spark Declarative Pipelines (SDP).
- Zie Pijplijncode ontwikkelen met Python voor conceptuele informatie en een overzicht van het gebruik van Python voor pijplijnen.
- Zie voor SQL-naslaginformatie de pijplijn SQL-taalreferentie.
- Zie Wat is Automatisch laadprogramma? voor meer informatie over het configureren van automatisch laden.
pipelines moduleoverzicht
Python-functies van Lakeflow Spark-declaratieve pijplijnen worden gedefinieerd in de pyspark.pipelines module (geïmporteerd als dp). Uw pijplijnen die zijn geïmplementeerd met de Python-API, moeten deze module importeren:
from pyspark import pipelines as dp
Opmerking
De module pijplijnen is alleen beschikbaar in de context van een pijplijn. Het is niet beschikbaar in Python dat buiten pijplijnen wordt uitgevoerd. Zie ETL-pijplijnen ontwikkelen en fouten opsporen met de Lakeflow Pipelines Editor voor meer informatie over het bewerken van pijplijncode.
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_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
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
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- create_streaming_table
- Verwachtingen
- materialized_view
- table
- temporary_view
Overwegingen voor Python-pijplijnen
Hier volgen belangrijke overwegingen bij het implementeren van pijplijnen met de Python-interface van Lakeflow Spark Declarative Pipelines (SDP):
- SDP evalueert de code die meerdere keren een pijplijn definieert tijdens de planning en pijplijnuitvoeringen. 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, SDP en Apache Spark
In de volgende tabel ziet u de verschillen in syntaxis en functionaliteit tussen DLT, Lakeflow Spark-declaratieve pijplijnen en Apache Spark-declaratieve pijplijnen.
| 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 |
| 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 |