我正在關注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