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.
De Python-interface voor Lakeflow-pijplijnen wordt gedefinieerd in de module pyspark.pipelines, geïmporteerd als dp.
- 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
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_flowdp.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
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_table
- create_sink
- create_streaming_table
- Verwachtingen
- foreach_batch_sink
- materialized_view
- replace_flow
- table
- temporary_view
- update_flow
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. |