#scala #apache-spark #apache-spark-sql #spark-structured-streaming
Вопрос:
Может ли кто-нибудь помочь с работой setTimeoutTimestamp()
в mapGroupsWithState()
?
setTimeoutTimestamp()
Удаляет ли состояние после того, как оно пересекает указанную продолжительность?
Ответ №1:
Согласно документам Scala в GroupState, метод setTimeoutTimestamp
возвращает a Unit
. Он только устанавливает тайм-аут.
Таким образом, ничего не происходит, если вы явно не проверите, истекло ли время ожидания состояния, а затем не удалите его. Пример также приведен в связанной документации и кратко показан ниже:
if (state.hasTimedOut) { // If called when timing out, remove the state
state.remove()
} else {
...
}