显示 Spark 结构化流作业消耗的事件数
Display number of events consumed by a Spark Structured streaming job
我有 2 个线性 Spark 结构化流作业,可将数据从一个 kafka 主题复制到另一个。
是否可以 publish/view Spark UI 中的事件数 consumed/produced?
Spark Web UI 中的“流媒体选项卡”不适用于结构化流媒体,仅适用于直接 API。从版本 3.x 开始可用。
但是,还有另一种简单的方法可以显示 Spark Structured Streaming 作业处理的事件数。
您可以使用 StreamingQueryListener
import org.apache.spark.sql.streaming.StreamingQueryListener
import org.apache.spark.sql.streaming.StreamingQueryListener.QueryProgressEvent
class CountNumRecordsListener extends StreamingQueryListener {
override def onQueryStarted(event: StreamingQueryListener.QueryStartedEvent): Unit = { }
override def onQueryProgress(event: QueryProgressEvent): Unit = {
println(s"""numInputRows: ${event.progress.numInputRows}""")
}
override def onQueryTerminated(event: StreamingQueryListener.QueryTerminatedEvent): Unit = { }
}
然后 class 您可以向您的流应用程序添加一个侦听器(其中 spark
是您的 SparkSession
)。
val countNumRecordsListener = new CountNumRecordsListener
spark.streams.addListener(countNumRecordsListener)
StreamingQueryProgress class 提供了更多信息,可帮助您了解流式处理作业的数据处理。
我有 2 个线性 Spark 结构化流作业,可将数据从一个 kafka 主题复制到另一个。
是否可以 publish/view Spark UI 中的事件数 consumed/produced?
Spark Web UI 中的“流媒体选项卡”不适用于结构化流媒体,仅适用于直接 API。从版本 3.x 开始可用。
但是,还有另一种简单的方法可以显示 Spark Structured Streaming 作业处理的事件数。
您可以使用 StreamingQueryListener
import org.apache.spark.sql.streaming.StreamingQueryListener
import org.apache.spark.sql.streaming.StreamingQueryListener.QueryProgressEvent
class CountNumRecordsListener extends StreamingQueryListener {
override def onQueryStarted(event: StreamingQueryListener.QueryStartedEvent): Unit = { }
override def onQueryProgress(event: QueryProgressEvent): Unit = {
println(s"""numInputRows: ${event.progress.numInputRows}""")
}
override def onQueryTerminated(event: StreamingQueryListener.QueryTerminatedEvent): Unit = { }
}
然后 class 您可以向您的流应用程序添加一个侦听器(其中 spark
是您的 SparkSession
)。
val countNumRecordsListener = new CountNumRecordsListener
spark.streams.addListener(countNumRecordsListener)
StreamingQueryProgress class 提供了更多信息,可帮助您了解流式处理作业的数据处理。