StreamingQueryListener

用于侦听与 StreamingQuery 相关的事件的抽象类。 此类子类并实现其抽象方法,用于接收流式处理查询的生命周期事件回调。

Syntax

from pyspark.sql.streaming import StreamingQueryListener

class MyListener(StreamingQueryListener):
    def onQueryStarted(self, event):
        pass

    def onQueryProgress(self, event):
        pass

    def onQueryIdle(self, event):
        pass

    def onQueryTerminated(self, event):
        pass

方法

方法 说明
onQueryStarted(event) 启动查询时调用。
onQueryProgress(event) 当有一些状态更新时调用 (引入速率已更新等)
onQueryIdle(event) 当查询处于空闲状态并等待新数据进行处理时调用。
onQueryTerminated(event) 在查询停止时调用,并出现或未出错。

备注

这些方法不是线程安全的,因为它们可以从不同的线程调用。

在 Spark Connect 模式下,侦听器无法访问其外部定义的变量。 使用 self.spark 而不是 spark 在 Connect 模式下访问侦听器中的会话。

示例

from pyspark.sql.streaming import StreamingQueryListener

class MyListener(StreamingQueryListener):
    def onQueryStarted(self, event):
        # Do something with event.
        pass

    def onQueryProgress(self, event):
        # Do something with event.
        pass

    def onQueryIdle(self, event):
        # Do something with event.
        pass

    def onQueryTerminated(self, event):
        # Do something with event.
        pass

spark.streams.addListener(MyListener())