Apache spark mapWithState().timeout()来触发某些函数

Apache spark mapWithState().timeout()来触发某些函数,apache-spark,spark-streaming,session-timeout,Apache Spark,Spark Streaming,Session Timeout,我想使用mapWithState().timeout()函数作为触发其他函数的事件。有没有办法做到这一点 我已经阅读了一些statesnashot()来查找timeout日志消息,但没有找到足够的相关信息。这就是我问题的答案的开始吗?在哪里可以找到更多关于这方面的信息 我想使用mapWithState().timeout()函数作为事件 触发其他功能。有没有办法做到这一点 是的,有可能。您可以做的是定义一个在超时发生时调用的操作。如何知道MapWithStateRDD上何时发生超时?你们可以看看

我想使用
mapWithState().timeout()
函数作为触发其他函数的事件。有没有办法做到这一点

我已经阅读了一些
statesnashot()
来查找
timeout
日志消息,但没有找到足够的相关信息。这就是我问题的答案的开始吗?在哪里可以找到更多关于这方面的信息

我想使用
mapWithState().timeout()
函数作为事件 触发其他功能。有没有办法做到这一点

是的,有可能。您可以做的是定义一个在超时发生时调用的操作。如何知道
MapWithStateRDD
上何时发生超时?你们可以看看这个方法。超时过期后,此方法将生成
true
,并且
mapWithState
将最后一次执行
StateSpec
方法,将
值设置为
None

object Foo {
  def main(args: Array[String]): Unit = {
    val spec = StateSpec.function(updateState _).timeout(Milliseconds(5))
    // Use spec to invoke `mapWithState`
  }

  def updateState(key: Int, value: Option[Int], state: State[Int]): Option[Int] = {
    value match {
      case Some(number) => Some(number + 1)
      case _ if state.isTimingOut() => // Trigger Code Here
  }
}

谢谢我在想:我能强制执行
状态的
超时吗?也就是说,我可以将变量
isTimingOut()
设置为1吗?否。您只能在创建
StateSpec
时设置超时时间。