用于侦听与 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())