Operations that can be applied to windowed streams including built-in aggregations, custom window functions, and incremental aggregations.
class WindowedStream[T, K, W <: Window] {
def sum(position: Int): DataStream[T]
def sum(field: String): DataStream[T]
def min(position: Int): DataStream[T]
def max(position: Int): DataStream[T]
def minBy(position: Int): DataStream[T]
def maxBy(position: Int): DataStream[T]
}
class AllWindowedStream[T, W <: Window] {
def sum(position: Int): DataStream[T]
def min(position: Int): DataStream[T]
def max(position: Int): DataStream[T]
def minBy(position: Int): DataStream[T]
def maxBy(position: Int): DataStream[T]
}class WindowedStream[T, K, W <: Window] {
def apply[R: TypeInformation](function: WindowFunction[T, R, K, W]): DataStream[R]
def process[R: TypeInformation](function: ProcessWindowFunction[T, R, K, W]): DataStream[R]
def reduce(function: (T, T) => T): DataStream[T]
def aggregate[ACC: TypeInformation, R: TypeInformation](aggregateFunction: AggregateFunction[T, ACC, R]): DataStream[R]
}Window operations enable computing results over finite subsets of infinite streams using time or count-based boundaries.