trigger (DataStreamWriter)
Définit le Trigger pour la query de streaming. Si non défini, la query s'exécute aussi vite que possible, équivalent à processingTime='0 seconds'. Un seul paramètre de trigger peut être défini à la fois.
Consultez l’article Configurer les intervalles de trigger de Structured Streaming.
Exécution de compute et de pipeline
Dans les LakeFlow Pipelines, le pipeline gère l’exécution du Stream. Utilisez les paramètres d’exécution du pipeline pour contrôler le moment où les données du pipeline sont traitées.
Lorsque vous utilisez DataStreamWriter directement sur un compute Serverless pour les Notebooks et les Job, utilisez availableNow=True. Le trigger default, processingTime, continuous et realTime ne sont pas pris en charge sur ce compute. Ces restrictions ne s’appliquent pas aux modes d’exécution de pipelines serverless. Voir Limitations du streaming.
Syntaxe
trigger(*, processingTime=None, once=None, continuous=None, availableNow=None, realTime=None)
parameter
parameter | Type | Description |
|---|---|---|
| str, facultatif | Une chaîne d'intervalle de temps de traitement (par exemple, |
| bool, facultatif | Si |
| str, facultatif | Non pris en charge sur Databricks. Ce parameter active le mode de traitement continu expérimental d’Apache Spark, qui diffère du mode de pipeline continu. Utilisez le mode en temps réel pour les query Structured Streaming à faible latence. |
| bool, facultatif | Si |
| str, facultatif | Une chaîne de caractères indiquant la durée du batch (par exemple, |
Renvoie
DataStreamWriter
Exemples
df = spark.readStream.format("rate").load()
Exécution du Trigger toutes les 5 secondes :
df.writeStream.trigger(processingTime='5 seconds')
# <...streaming.readwriter.DataStreamWriter object ...>
Traitez toutes les données disponibles par lots :
df.writeStream.trigger(availableNow=True)
# <...streaming.readwriter.DataStreamWriter object ...>
Configurez le mode temps réel avec des batchs de cinq minutes. Les enregistrements sont traités à mesure qu’ils arrivent pendant chaque batch. Utilisez un type de source, de destination et de compute pris en charge:
kafka_df = (spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "<bootstrap-servers>")
.option("subscribe", "<input-topic>")
.load())
kafka_df.writeStream.trigger(realTime="5 minutes")
# <...streaming.readwriter.DataStreamWriter object ...>