【问题标题】:How to intercept streaming events (equivalent of StreamingListener)?如何拦截流事件(相当于StreamingListener)?
【发布时间】:2020-04-17 08:10:06
【问题描述】:

目前,我们有代码在 Spark 流上运行,我们希望将其迁移到结构化流中。据我所知StreamingListener 仅用于火花流,当我使用结构化流时应该使用什么?

【问题讨论】:

    标签: apache-spark spark-structured-streaming


    【解决方案1】:

    相当于StreamingQueryListener。它记录在官方编程指南中,位于Reporting Metrics programmatically using Asynchronous APIs 下。

    您还可以通过附加 StreamingQueryListener (...) 来异步监控与 SparkSession 关联的所有查询。一旦使用 sparkSession.streams.attachListener() 附加自定义 StreamingQueryListener 对象,您将在查询启动和停止以及有在活动查询中取得的进展。这是一个例子,

    官方 API 可用于 Scala 和 Java,但您可以在 another thread on Stack Overflow 中找到它在 Python 中的使用示例。

    【讨论】:

    • StreamingQueryListenerStreamingListener 不是两个不同用途的不同 API 吗?一个是全局的,另一个是特定于查询的?
    • 如果你这样说,我不确定哪个会是哪个@MehdiLAMRANI。当然有两种不同的 API - 因为结构化流模型,即使在批处理模式下,也与传统流有很大不同。
    • 恕我直言,这完全取决于您要实现的目标。我个人同时使用这两种方法,明显偏爱最新的 API,因为它显然更灵活
    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多