GroupStateImpl¶
GroupStateImpl is the default and only known GroupState in Spark Structured Streaming.
GroupStateImpl holds per-group <S per group key.
GroupStateImpl is <GroupStateImpl helper object is requested for the following:
-
<
> -
<
>
Creating Instance¶
GroupStateImpl takes the following to be created:
- [[optionalValue]] State value (of type
S) - [[batchProcessingTimeMs]] Batch processing time
- [[eventTimeWatermarkMs]]
eventTimeWatermarkMs - [[timeoutConf]] GroupStateTimeout
- [[hasTimedOut]]
hasTimedOutflag - [[watermarkPresent]]
watermarkPresentflag
=== [[createForStreaming]] Creating GroupStateImpl for Streaming Query -- createForStreaming Factory Method
[source, scala]¶
createForStreamingS: GroupStateImpl[S]
createForStreaming simply creates a <
NOTE: createForStreaming is used exclusively when InputProcessor is requested to callFunctionAndUpdateState (when InputProcessor is requested to processNewData and processTimedOutState).
=== [[createForBatch]] Creating GroupStateImpl for Batch Query -- createForBatch Factory Method
[source, scala]¶
createForBatch( timeoutConf: GroupStateTimeout, watermarkPresent: Boolean): GroupStateImpl[Any]
createForBatch...FIXME
NOTE: createForBatch is used when...FIXME
=== [[toString]] Textual Representation -- toString Method
[source, scala]¶
toString: String¶
NOTE: toString is part of the ++https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--++[java.lang.Object] contract for the string representation of the object.
toString...FIXME
=== [[setTimeoutDuration]] Specifying Timeout Duration for ProcessingTimeTimeout -- setTimeoutDuration Method
[source, scala]¶
setTimeoutDuration(durationMs: Long): Unit¶
setTimeoutDuration...FIXME
setTimeoutDuration is part of the GroupState abstraction.
=== [[setTimeoutTimestamp]] Specifying Timeout Timestamp for EventTimeTimeout -- setTimeoutTimestamp Method
[source, scala]¶
setTimeoutTimestamp(durationMs: Long): Unit¶
setTimeoutTimestamp...FIXME
setTimeoutTimestamp is part of the GroupState abstraction.
=== [[getCurrentProcessingTimeMs]] Getting Processing Time -- getCurrentProcessingTimeMs Method
[source, scala]¶
getCurrentProcessingTimeMs(): Long¶
getCurrentProcessingTimeMs simply returns the <
getCurrentProcessingTimeMs is part of the GroupState abstraction.
=== [[update]] Updating State -- update Method
[source, scala]¶
update(newValue: S): Unit¶
update...FIXME
update is part of the GroupState abstraction.
=== [[remove]] Removing State -- remove Method
[source, scala]¶
remove(): Unit¶
remove...FIXME
remove is part of the GroupState abstraction.
=== [[internal-properties]] Internal Properties
[cols="30m,70",options="header",width="100%"] |=== | Name | Description
| value a| [[value]] FIXME
Used when...FIXME
| defined a| [[defined]] FIXME
Used when...FIXME
| updated a| [[updated]][[hasUpdated]] Updated flag that says whether the state has been <
Default: false
Disabled (false) when GroupStateImpl is requested to <
Enabled (true) when GroupStateImpl is requested to <
| removed a| [[removed]][[hasRemoved]] Removed flag that says whether the state is marked <
Default: false
Disabled (false) when GroupStateImpl is requested to <
Enabled (true) when GroupStateImpl is requested to <
| timeoutTimestamp a| [[timeoutTimestamp]][[getTimeoutTimestamp]] Current timeout timestamp (in millis) for GroupStateTimeout.EventTimeTimeout or GroupStateTimeout.ProcessingTimeTimeout
[[NO_TIMESTAMP]] Default: -1
Defined using <EventTimeTimeout) and <ProcessingTimeTimeout) |===