Что делает setTimeoutTimestamp() в mapGroupsWithState?

#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 {
    ...
}