Adds the given sink to this DataStream.
Adds the given sink to this DataStream. Only streams with sinks added will be executed once the StreamExecutionEnvironment.execute(...) method is called.
Adds the given sink to this DataStream.
Adds the given sink to this DataStream. Only streams with sinks added will be executed once the StreamExecutionEnvironment.execute(...) method is called.
Assigns timestamps to the elements in the data stream and periodically creates watermarks to signal event time progress.
Assigns timestamps to the elements in the data stream and periodically creates watermarks to signal event time progress.
This method is a shortcut for data streams where the element timestamp are known to be monotonously ascending within each parallel stream. In that case, the system can generate watermarks automatically and perfectly by tracking the ascending timestamps.
For cases where the timestamps are not monotonously increasing, use the more general methods assignTimestampsAndWatermarks(AssignerWithPeriodicWatermarks) and assignTimestampsAndWatermarks(AssignerWithPunctuatedWatermarks).
Assigns timestamps to the elements in the data stream and periodically creates watermarks to signal event time progress.
Assigns timestamps to the elements in the data stream and periodically creates watermarks to signal event time progress.
This method creates watermarks based purely on stream elements. For each element that is handled via long), the AssignerWithPunctuatedWatermarks#checkAndGetNextWatermark() method is called, and a new watermark is emitted, if the returned watermark value is larger than the previous watermark.
This method is useful when the data stream embeds watermark elements, or certain elements carry a marker that can be used to determine the current event time watermark. This operation gives the programmer full control over the watermark generation. Users should be aware that too aggressive watermark generation (i.e., generating hundreds of watermarks every second) can cost some performance.
For cases where watermarks should be created in a regular fashion, for example every x milliseconds, use the AssignerWithPeriodicWatermarks.
#assignTimestampsAndWatermarks(AssignerWithPeriodicWatermarks)
AssignerWithPeriodicWatermarks
AssignerWithPunctuatedWatermarks
Assigns timestamps to the elements in the data stream and periodically creates watermarks to signal event time progress.
Assigns timestamps to the elements in the data stream and periodically creates watermarks to signal event time progress.
This method creates watermarks periodically (for example every second), based on the watermarks indicated by the given watermark generator. Even when no new elements in the stream arrive, the given watermark generator will be periodically checked for new watermarks. The interval in which watermarks are generated is defined in org.apache.flink.api.common.ExecutionConfig#setAutoWatermarkInterval(long).
Use this method for the common cases, where some characteristic over all elements should generate the watermarks, or where watermarks are simply trailing behind the wall clock time by a certain amount.
For the second case and when the watermarks are required to lag behind the maximum timestamp seen so far in the elements of the stream by a fixed amount of time, and this amount is known in advance, use the BoundedOutOfOrdernessTimestampExtractor.
For cases where watermarks should be created in an irregular fashion, for example based on certain markers that some element carry, use the AssignerWithPunctuatedWatermarks.
#assignTimestampsAndWatermarks(AssignerWithPunctuatedWatermarks)
AssignerWithPunctuatedWatermarks
AssignerWithPeriodicWatermarks
Sets the partitioning of the DataStream so that the output elements are broadcasted to every parallel instance of the next operation.
Sets the partitioning of the DataStream so that the output elements are broadcasted to every parallel instance of the next operation. In addition, it implicitly creates as many broadcast states as the specified descriptors which can be used to store the element of the stream.
the descriptors of the broadcast states to create.
A BroadcastStream which can be used in the DataStream.connect(BroadcastStream) to create a BroadcastConnectedStream for further processing of the elements.
Sets the partitioning of the DataStream so that the output tuples are broad casted to every parallel instance of the next component.
Creates a co-group operation.
Creates a co-group operation. See CoGroupedStreams for an example of how the keys and window can be specified.
Creates a new BroadcastConnectedStream by connecting the current DataStream or KeyedStream with a BroadcastStream.
Creates a new BroadcastConnectedStream by connecting the current DataStream or KeyedStream with a BroadcastStream.
The latter can be created using the broadcast(MapStateDescriptor[]) method.
The resulting stream can be further processed using the
method, where broadcastConnectedStream.process(myFunction)
can be either a
org.apache.flink.streaming.api.functions.co.KeyedBroadcastProcessFunction
or a org.apache.flink.streaming.api.functions.co.BroadcastProcessFunction
depending on the current stream being a KeyedStream or not.
myFunction
The broadcast stream with the broadcast state to be connected with this stream.
Creates a new ConnectedStreams by connecting DataStream outputs of different type with each other.
Creates a new ConnectedStreams by connecting DataStream outputs of different type with each other. The DataStreams connected using this operators can be used with CoFunctions.
Windows this DataStream into tumbling count windows.
Windows this DataStream into tumbling count windows.
Note: This operation can be inherently non-parallel since all elements have to pass through the same operator instance. (Only for special cases, such as aligned time windows is it possible to perform this operation in parallel).
The size of the windows in number of elements.
Windows this DataStream into sliding count windows.
Windows this DataStream into sliding count windows.
Note: This operation can be inherently non-parallel since all elements have to pass through the same operator instance. (Only for special cases, such as aligned time windows is it possible to perform this operation in parallel).
The size of the windows in number of elements.
The slide interval in number of elements.
Returns the TypeInformation for the elements of this DataStream.
Turns off chaining for this operator so thread co-location will not be used as an optimization.
Turns off chaining for this operator so thread co-location will not be used as an optimization. Chaining can be turned off for the whole job by StreamExecutionEnvironment.disableOperatorChaining() however it is not advised for performance considerations.
Returns the execution config.
Returns the StreamExecutionEnvironment associated with this data stream
Creates a new DataStream that contains only the elements satisfying the given filter predicate.
Creates a new DataStream that contains only the elements satisfying the given filter predicate.
Creates a new DataStream by applying the given function to every element and flattening the results.
Creates a new DataStream by applying the given function to every element and flattening the results.
Creates a new DataStream by applying the given function to every element and flattening the results.
Sets the partitioning of the DataStream so that the output tuples are forwarded to the local subtask of the next component (whenever possible).
Sets the partitioning of the DataStream so that the output values all go to the first instance of the next processing operator.
Sets the partitioning of the DataStream so that the output values all go to the first instance of the next processing operator. Use this setting with care since it might cause a serious performance bottleneck in the application.
Initiates an iterative part of the program that creates a loop by feeding back data streams.
Initiates an iterative part of the program that creates a loop by feeding back data streams. To create a streaming iteration the user needs to define a transformation that creates two DataStreams. The first one is the output that will be fed back to the start of the iteration and the second is the output stream of the iterative part.
The input stream of the iterate operator and the feedback stream will be treated as a ConnectedStreams where the input is connected with the feedback stream.
This allows the user to distinguish standard input from feedback inputs.
stepfunction: initialStream => (feedback, output)
The user must set the max waiting time for the iteration head. If no data received in the set time the stream terminates. If this parameter is set to 0 then the iteration sources will indefinitely, so the job must be killed to stop.
Initiates an iterative part of the program that creates a loop by feeding back data streams.
Initiates an iterative part of the program that creates a loop by feeding back data streams. To create a streaming iteration the user needs to define a transformation that creates two DataStreams. The first one is the output that will be fed back to the start of the iteration and the second is the output stream of the iterative part.
stepfunction: initialStream => (feedback, output)
A common pattern is to use output splitting to create feedback and output DataStream. Please refer to the split method of the DataStream
By default a DataStream with iteration will never terminate, but the user can use the maxWaitTime parameter to set a max waiting time for the iteration head. If no data received in the set time the stream terminates.
Parallelism of the feedback stream must match the parallelism of the original stream. Please refer to the setParallelism method for parallelism modification
Gets the underlying java DataStream object.
Creates a join operation.
Creates a join operation. See JoinedStreams for an example of how the keys and window can be specified.
Groups the elements of a DataStream by the given K key to be used with grouped operators like grouped reduce or grouped aggregations.
Groups the elements of a DataStream by the given field expressions to be used with grouped operators like grouped reduce or grouped aggregations.
Groups the elements of a DataStream by the given key positions (for tuple/array types) to be used with grouped operators like grouped reduce or grouped aggregations.
Creates a new DataStream by applying the given function to every element of this DataStream.
Creates a new DataStream by applying the given function to every element of this DataStream.
Returns the minimum resources of this operation.
Returns the minimum resources of this operation.
Sets the name of the current data stream.
Sets the name of the current data stream. This name is used by the visualization and logging during runtime.
The named operator
Gets the name of the current data stream.
Gets the name of the current data stream. This name is used by the visualization and logging during runtime.
Name of the stream.
Returns the parallelism of this operation.
Partitions a DataStream on the key returned by the selector, using a custom partitioner.
Partitions a DataStream on the key returned by the selector, using a custom partitioner. This method takes the key selector to get the key to partition on, and a partitioner that accepts the key type.
Note: This method works only on single field keys, i.e. the selector cannot return tuples of fields.
Partitions a POJO DataStream on the specified key fields using a custom partitioner.
Partitions a POJO DataStream on the specified key fields using a custom partitioner. This method takes the key expression to partition on, and a partitioner that accepts the key type.
Note: This method works only on single field keys.
Partitions a tuple DataStream on the specified key fields using a custom partitioner.
Partitions a tuple DataStream on the specified key fields using a custom partitioner. This method takes the key position to partition on, and a partitioner that accepts the key type.
Note: This method works only on single field keys.
Returns the preferred resources of this operation.
Returns the preferred resources of this operation.
Writes a DataStream to the standard output stream (stdout).
Writes a DataStream to the standard output stream (stdout). For each element of the DataStream the result of .toString is written.
Writes a DataStream to the standard output stream (stderr).
Writes a DataStream to the standard output stream (stderr).
For each element of the DataStream the result of AnyRef.toString() is written.
The closed DataStream.
Applies the given ProcessFunction on the input stream, thereby creating a transformed output stream.
Applies the given ProcessFunction on the input stream, thereby creating a transformed output stream.
The function will be called for every element in the stream and can produce zero or more output.
The ProcessFunction that is called for each element in the stream.
Sets the partitioning of the DataStream so that the output tuples are distributed evenly to the next component.
Sets the partitioning of the DataStream so that the output tuples are distributed evenly to a subset of instances of the downstream operation.
Sets the partitioning of the DataStream so that the output tuples are distributed evenly to a subset of instances of the downstream operation.
The subset of downstream operations to which the upstream operation sends elements depends on the degree of parallelism of both the upstream and downstream operation. For example, if the upstream operation has parallelism 2 and the downstream operation has parallelism 4, then one upstream operation would distribute elements to two downstream operations while the other upstream operation would distribute to the other two downstream operations. If, on the other hand, the downstream operation has parallelism 2 while the upstream operation has parallelism 4 then two upstream operations will distribute to one downstream operation while the other two upstream operations will distribute to the other downstream operations.
In cases where the different parallelisms are not multiples of each other one or several downstream operations will have a differing number of inputs from upstream operations.
Sets the maximum time frequency (ms) for the flushing of the output buffer.
Sets the maximum time frequency (ms) for the flushing of the output buffer. By default the output buffers flush only when they are full.
The maximum time between two output flushes.
The operator with buffer timeout set.
Sets the value of the given option for the operator.
Sets the value of the given option for the operator.
The name of the option to be updated.
The value of the option to be updated.
Sets the value of the given option for the operator.
Sets the value of the given option for the operator.
The option to be updated.
The value of the option to be updated.
Sets the parallelism of this operation.
Sets the parallelism of this operation. This must be at least 1.
Sets the resource of this operation.
Sets the resource of this operation.
Sets the minimum and preferred resources of this operation.
Sets the minimum and preferred resources of this operation.
Sets an user provided hash for this operator.
Sets an user provided hash for this operator. This will be used AS IS the create the JobVertexID.
The user provided hash is an alternative to the generated hashes, that is considered when identifying an operator through the default hash mechanics fails (e.g. because of changes between Flink versions).
Important: this should be used as a workaround or for trouble shooting. The provided hash needs to be unique per transformation and job. Otherwise, job submission will fail. Furthermore, you cannot assign user-specified hash to intermediate nodes in an operator chain and trying so will let your job fail.
the user provided hash for this operator.
The operator with the user provided hash.
Sets the partitioning of the DataStream so that the output tuples are shuffled to the next component.
Sets the partitioning of the DataStream so that the output tuples are shuffled to the next component.
Sets the slot sharing group of this operation.
Sets the slot sharing group of this operation. Parallel instances of operations that are in the same slot sharing group will be co-located in the same TaskManager slot, if possible.
Operations inherit the slot sharing group of input operations if all input operations are in the same slot sharing group and no slot sharing group was explicitly specified.
Initially an operation is in the default slot sharing group. An operation can be put into
the default group explicitly by setting the slot sharing group to "default"
.
The slot sharing group name.
Creates a new SplitStream that contains only the elements satisfying the given output selector predicate.
Operator used for directing tuples to specific named outputs using an OutputSelector.
Operator used for directing tuples to specific named outputs using an OutputSelector. Calling this method on an operator creates a new SplitStream.
Starts a new task chain beginning at this operator.
Starts a new task chain beginning at this operator. This operator will not be chained (thread co-located for increased performance) to any previous tasks even if possible.
Windows this DataStream into sliding time windows.
Windows this DataStream into sliding time windows.
This is a shortcut for either .window(SlidingEventTimeWindows.of(size, slide))
or
.window(SlidingProcessingTimeWindows.of(size, slide))
depending on the time characteristic
set using
StreamExecutionEnvironment.setStreamTimeCharacteristic.
Note: This operation can be inherently non-parallel since all elements have to pass through the same operator instance. (Only for special cases, such as aligned time windows is it possible to perform this operation in parallel).
The size of the window.
Windows this DataStream into tumbling time windows.
Windows this DataStream into tumbling time windows.
This is a shortcut for either .window(TumblingEventTimeWindows.of(size))
or
.window(TumblingProcessingTimeWindows.of(size))
depending on the time characteristic
set using
StreamExecutionEnvironment.setStreamTimeCharacteristic.
Note: This operation can be inherently non-parallel since all elements have to pass through the same operator instance. (Only for special cases, such as aligned time windows is it possible to perform this operation in parallel).
The size of the window.
Transforms the DataStream by using a custom OneInputStreamOperator.
Transforms the DataStream by using a custom OneInputStreamOperator.
the type of elements emitted by the operator
name of the operator, for logging purposes
the object containing the transformation logic
Sets an ID for this operator.
Sets an ID for this operator.
The specified ID is used to assign the same operator ID across job submissions (for example when starting a job from a savepoint).
Important: this ID needs to be unique per transformation and job. Otherwise, job submission will fail.
The unique user-specified ID of this transformation.
The operator with the specified ID.
Creates a new DataStream by merging DataStream outputs of the same type with each other.
Creates a new DataStream by merging DataStream outputs of the same type with each other. The DataStreams merged using this operator will be transformed simultaneously.
Windows this data stream to a AllWindowedStream, which evaluates windows over a key grouped stream.
Windows this data stream to a AllWindowedStream, which evaluates windows over a key grouped stream. Elements are put into windows by a WindowAssigner. The grouping of elements is done both by key and by window.
A org.apache.flink.streaming.api.windowing.triggers.Trigger can be defined to specify
when windows are evaluated. However, WindowAssigner
have a default Trigger
that is used if a Trigger
is not specified.
Note: This operation can be inherently non-parallel since all elements have to pass through the same operator instance. (Only for special cases, such as aligned time windows is it possible to perform this operation in parallel).
The WindowAssigner
that assigns elements to windows.
The trigger windows data stream.
Writes the DataStream in CSV format to the file specified by the path parameter.
Writes the DataStream in CSV format to the file specified by the path parameter. The writing is performed periodically every millis milliseconds.
Path to the location of the CSV file
Controls whether an existing file is overwritten or not
Delimiter for consecutive rows
Delimiter for consecutive fields
The closed DataStream
Writes the DataStream in CSV format to the file specified by the path parameter.
Writes the DataStream in CSV format to the file specified by the path parameter. The writing is performed periodically every millis milliseconds.
Path to the location of the CSV file
Controls whether an existing file is overwritten or not
The closed DataStream
Writes the DataStream in CSV format to the file specified by the path parameter.
Writes the DataStream in CSV format to the file specified by the path parameter. The writing is performed periodically every millis milliseconds.
Path to the location of the CSV file
The closed DataStream
Writes a DataStream to the file specified by path in text format.
Writes a DataStream to the file specified by path in text format. For every element of the DataStream the result of .toString is written.
The path pointing to the location the text file is written to
Controls the behavior for existing files. Options are NO_OVERWRITE and OVERWRITE.
The closed DataStream
Writes a DataStream to the file specified by path in text format.
Writes a DataStream to the file specified by path in text format. For every element of the DataStream the result of .toString is written.
The path pointing to the location the text file is written to
The closed DataStream
Writes the DataStream to a socket as a byte array.
Writes the DataStream to a socket as a byte array. The format of the output is specified by a SerializationSchema.
Writes a DataStream using the given OutputFormat.
Writes a DataStream using the given OutputFormat.
Extracts a timestamp from an element and assigns it as the internal timestamp of that element.
Extracts a timestamp from an element and assigns it as the internal timestamp of that element. The internal timestamps are, for example, used to to event-time window operations.
If you know that the timestamps are strictly increasing you can use an AscendingTimestampExtractor. Otherwise, you should provide a TimestampExtractor that also implements TimestampExtractor#getCurrentWatermark to keep track of watermarks.
org.apache.flink.streaming.api.watermark.Watermark
Returns the execution config.
Returns the execution config.
Returns the StreamExecutionEnvironment associated with the current DataStream.
Returns the StreamExecutionEnvironment associated with the current DataStream.
associated execution environment
Gets the name of the current data stream.
Gets the name of the current data stream. This name is used by the visualization and logging during runtime.
Name of the stream.
Returns the parallelism of this operation.
Returns the parallelism of this operation.
Returns the TypeInformation for the elements of this DataStream.
Returns the TypeInformation for the elements of this DataStream.