如何访问流查询指标?

时间:2018-11-16 10:37:58

标签: apache-spark spark-structured-streaming

我使用Spark 2.4。

我正在将Spark Streaming应用程序迁移到结构化流媒体。

我正在研究每个批次的生成指标,并且希望控制每个微型批次的统计信息。我对每个microBatch的processingDelayschedulingDelaytotalDelay指标以及在结构化流中的何处都感兴趣。

我尝试了以下方法,但是它不会生成任何统计信息。

val recentBatchInfos = new StatsReportListener(60).batchInfos
val numberOfRecords = recentBatchInfos.map(_.numRecords).sum

任何人都可以告诉使用方法来控制统计信息并生成相应的指标吗?

1 个答案:

答案 0 :(得分:2)

Spark结构化流和Spark流的计算模型不同。结构化流使用Dataset数据抽象,而Spark流直接使用RDD API。然后,结构化流中的可用指标会有所不同。

您应该真正使用StreamingQueryListener这是监视界面:

  

用于侦听与StreamingQueries相关的事件的接口。

onQueryProgress(event: QueryProgressEvent): Unit使您可以使用所有当前流指标来访问当前StreamingQueryProgress

在Spark结构化流媒体的官方文档中咨询Reporting Metrics programmatically using Asynchronous APIs