我正在关注sample of mapWithState
function on Databricks website。在Spark Streaming中使用mapWithState指定超时
为trackstatefunction这些码是如下:
def trackStateFunc(batchTime: Time, key: String, value: Option[Int], state: State[Long]): Option[(String, Long)] = {
val sum = value.getOrElse(0).toLong + state.getOption.getOrElse(0L)
val output = (key, sum)
state.update(sum)
Some(output)
}
我的情况下的问题,当状态是时序出(state.isTimingout()==true)
那么函数再次更新其可能会导致异常的SATE。样本是否属实?
hi @Yuval,所以如果一个特定的键超时,所有的状态都消失了?你需要从头开始? – marios
@marios是的,超时后,键被标记为删除。 –
我想如果你需要在超时后坚持你的状态,你需要自己动手吗?感谢Yuval! – marios