Core concept
stream.withWatermark("eventTime", "10 minutes")
.groupBy(window($"eventTime", "5 minutes"))
.count()Advertisement
How it works
Trade-off: longer watermark = more memory + more accurate.
Advertisement
Trade-offs + gotchas
Windowed aggregations. Stateful stream operations.