StreamingQuery

Handle vers une requête qui s’exécute en continu en arrière-plan à mesure que de nouvelles données arrivent. Toutes les méthodes sont thread-safe.

Syntaxe

# Returned by DataStreamWriter.start() or DataStreamWriter.toTable()
q = df.writeStream.format("console").start()

Propriétés

Propriété Description
id Retourne l’ID unique de cette requête qui persiste entre les redémarrages à partir des données de point de contrôle.
runId Retourne l’ID unique de cette requête qui ne persiste pas entre les redémarrages.
name Retourne le nom spécifié par l’utilisateur de la requête, ou None s’il n’est pas spécifié.
isActive Retourne si cette requête de diffusion en continu est actuellement active.
status Retourne l’état actuel de la requête en tant que dict.
recentProgress Retourne un tableau des mises à jour les plus récentes StreamingQueryProgress pour cette requête.
lastProgress Retourne la mise à jour la plus récente StreamingQueryProgress ou None s’il n’y a pas eu de mises à jour.

Méthodes

Méthode Description
awaitTermination(timeout) Attend l’arrêt de cette requête, soit par stop() une exception.
processAllAvailable() Bloque jusqu’à ce que toutes les données disponibles dans la source soient traitées et validées sur le récepteur. Conçu pour les tests.
stop() Arrête cette requête de diffusion en continu.
explain(extended) Imprime les plans (logiques et physiques) dans la console pour le débogage.
exception() Retourne la StreamingQueryException valeur si la requête s’est terminée avec une exception ou None.

Exemples

sdf = spark.readStream.format("rate").load()
sq = sdf.writeStream.format('memory').queryName('this_query').start()
sq.isActive
# True
sq.name
# 'this_query'
sq.awaitTermination(5)
# False
sq.stop()
sq.isActive
# False