Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cette section contient des détails sur l’interface de programmation Python De Lakeflow Spark Declarative Pipelines (SDP).
- Pour obtenir des informations conceptuelles et une vue d’ensemble de l’utilisation de Python pour les pipelines, consultez Développer du code de pipeline avec Python.
- Pour obtenir une référence SQL, consultez la référence du langage SQL de pipeline.
- Pour plus d’informations sur la configuration du chargeur automatique, consultez Qu’est-ce que le chargeur automatique ?.
pipelines Vue d’ensemble du module
Les fonctions Python des pipelines déclaratifs Lakeflow Spark sont définies dans le module pyspark.pipelines (importé en tant que dp). Vos pipelines implémentés avec l’API Python doivent importer ce module :
from pyspark import pipelines as dp
Note
Le module pipelines est disponible uniquement dans le contexte d’un pipeline. Il n’est pas disponible dans Python s’exécutant en dehors des pipelines. Pour plus d’informations sur la modification du code de pipeline, consultez Développer et déboguer des pipelines ETL avec l’Éditeur de pipelines Lakeflow.
Pipelines Apache Spark™
Apache Spark inclut des pipelines déclaratifs commençant par Spark 4.1, disponibles via le pyspark.pipelines module. Databricks Runtime étend ces fonctionnalités open source avec des API et des intégrations supplémentaires pour une utilisation de production managée.
Le code écrit avec le module open source pipelines s’exécute sans modification sur Azure Databricks. Les fonctionnalités suivantes ne font pas partie d’Apache Spark :
dp.create_auto_cdc_flowdp.create_auto_cdc_from_snapshot_flow@dp.expect(...)@dp.temporary_view
Le pipelines module a été appelé dlt précédemment dans Azure Databricks. Pour plus d’informations et plus d’informations sur les différences d’Apache Spark, consultez Qu’est-il arrivé à @dlt?.
Fonctions pour les définitions de jeu de données
Les pipelines utilisent des décorateurs Python pour définir des jeux de données tels que des vues matérialisées et des tables de streaming. Consultez Functions pour définir des jeux de données.
Référence d’API
- append_flow
- create_auto_cdc_flow
- create_auto_cdc_from_snapshot_flow
- create_sink
- créer_table_de_streaming
- Attentes
- vue matérialisée
- table
- temporary_view
Exigences de codage pour les pipelines Python
Les exigences suivantes sont importantes lorsque vous implémentez des pipelines avec l’interface Python de Lakeflow Spark Declarative Pipelines (SDP) :
- SDP évalue le code qui définit un pipeline plusieurs fois pendant la planification et les exécutions du pipeline. Les fonctions Python qui définissent des jeux de données doivent inclure uniquement le code requis pour définir la table ou la vue. Une logique Python arbitraire incluse dans les définitions de jeu de données peut entraîner un comportement inattendu.
- N’essayez pas d’implémenter une logique de supervision personnalisée dans vos définitions de jeu de données. Consultez Définir une surveillance personnalisée des pipelines avec des hooks d’événements.
- La fonction utilisée pour définir un jeu de données doit retourner un DataFrame Spark. N’incluez pas de logique dans vos définitions de jeu de données qui ne sont pas liées à un DataFrame retourné.
- N’utilisez jamais de méthodes qui enregistrent ou écrivent dans des fichiers ou des tables dans le cadre de votre code de jeu de données de pipeline.
Exemples d’opérations Apache Spark qui ne doivent jamais être utilisées dans le code de pipeline :
collect()count()toPandas()save()saveAsTable()start()toTable()
Qu’est-ce qui s’est @dltpassé ?
Auparavant, Azure Databricks utilisait le module dlt pour prendre en charge les fonctionnalités de pipeline. Le dlt module a été remplacé par le pyspark.pipelines module. Vous pouvez toujours utiliser dlt, mais Databricks recommande d’utiliser pipelines.
Différences entre DLT, SDP et Apache Spark
Le tableau suivant présente les différences de syntaxe et de fonctionnalité entre DLT, Lakeflow Spark Declarative Pipelines et Apache Spark Declarative Pipelines.
| Area | Syntaxe DLT | Syntaxe SDP (Lakeflow et Apache, le cas échéant) | Disponible dans Apache Spark |
|---|---|---|---|
| Importations | import dlt |
from pyspark import pipelines (as dpéventuellement) |
Oui |
| Table de diffusion en continu |
@dlt.table avec un dataframe en continu |
@dp.table |
Oui |
| Vue matérialisée |
@dlt.table avec un dataframe batch |
@dp.materialized_view |
Oui |
| Affichage | @dlt.view |
@dp.temporary_view |
Oui |
| Flux d’ajout | @dlt.append_flow |
@dp.append_flow |
Oui |
| SQL – Diffusion en continu | CREATE STREAMING TABLE ... |
CREATE STREAMING TABLE ... |
Oui |
| SQL – matérialisé | CREATE MATERIALIZED VIEW ... |
CREATE MATERIALIZED VIEW ... |
Oui |
| SQL : flux | CREATE FLOW ... |
CREATE FLOW ... |
Oui |
| Journal des événements | spark.read.table("event_log") |
spark.read.table("event_log") |
Non |
| Appliquer des modifications (CDC) | dlt.apply_changes(...) |
dp.create_auto_cdc_flow(...) |
Non |
| Expectations | @dlt.expect(...) |
dp.expect(...) |
Non |
| Mode continu | Configuration du pipeline avec déclencheur continu | (identique) | Non |
| Récepteur | @dlt.create_sink(...) |
dp.create_sink(...) |
Oui |