déclencheur (DataStreamWriter)

Définit le déclencheur de la requête de diffusion en continu. Si elle n’est pas définie, la requête s’exécute aussi rapidement que possible, ce qui équivaut à processingTime='0 seconds'. Un seul paramètre de déclencheur peut être défini à la fois.

Consultez Configurer les intervalles de déclenchement pour Structured Streaming.

Calcul et exécution en pipeline

Dans les pipelines Lakeflow, le pipeline gère l’exécution des flux. 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 le calcul serverless pour les notebooks et les jobs, utilisez availableNow=True. Le déclencheur par défaut, processingTime, continuous, et realTime ne sont pas pris en charge sur ce calcul. Ces restrictions ne s’appliquent pas aux modes d’exécution des pipelines serverless. Consultez les limitations de streaming.

Syntaxe

trigger(*, processingTime=None, once=None, continuous=None, availableNow=None, realTime=None)

Paramètres

Paramètre Type Description
processingTime str, facultatif Chaîne d’intervalle de temps de traitement (par exemple, '5 seconds', '1 minute'). Exécute régulièrement une requête de microbatch en fonction du temps de traitement.
once bool, facultatif Si True, traite un seul lot de données, met fin à la requête. Précipécié dans Databricks Runtime 11.3 LTS et versions ultérieures. Utilisez availableNow=True à la place.
continuous str, facultatif Non pris en charge sur Azure Databricks. Ce paramètre permet le mode expérimental de traitement continu d’Apache Spark, qui diffère du mode pipeline continu. Utilisez le mode temps réel pour les requêtes de streaming structuré à faible latence.
availableNow bool, facultatif Si True, traite toutes les données disponibles dans plusieurs lots, termine la requête.
realTime str, facultatif Chaîne de durée de lot (par exemple, '5 minutes'). Traite les dossiers au fur et à mesure qu’ils arrivent dans un lot de longue durée. La valeur contrôle la durée du lot, pas la latence de traitement des enregistrements. Voir le mode temps réel dans Structured Streaming.

Retours

DataStreamWriter

Exemples

df = spark.readStream.format("rate").load()

Déclenchez l’exécution toutes les 5 secondes :

df.writeStream.trigger(processingTime='5 seconds')
# <...streaming.readwriter.DataStreamWriter object ...>

Traitez toutes les données disponibles dans plusieurs lots :

df.writeStream.trigger(availableNow=True)
# <...streaming.readwriter.DataStreamWriter object ...>

Configurez le mode temps réel avec des fournéfices de cinq minutes. Les dossiers sont traités au fur et à mesure qu’ils arrivent à chaque lot. Utilisez une source, un puits et un type de calcul 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 ...>