How to use the Max of Flink to get the largest value in a set of data streams
This article mainly introduces "how to use Flink's Max to get the maximum value in a group of data streams". In daily operations, I believe many people have doubts about how to use Flink's Max to get the maximum value in a group of data streams. Xiaobian consulted all kinds of materials and sorted out simple and easy-to-use methods of operation. I hope it will be helpful for you to answer the questions of "how to use Flink's Max to get the maximum value in a group of data streams". Next, please follow the editor to study!
Max aggregation: gets the largest value in a set of data streams
Sample environment
Java.version: 1.8.xflink.version: 1.11.1
Sample data source (project code cloud download)
Building Development Environment and data of Flink system example
Max.java
Import com.flink.examples.DataSource;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.typeinfo.Types;import org.apache.flink.api.java.functions.KeySelector;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.api.java.tuple.Tuple3;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import java.util.List / * * @ Description max aggregation: get the largest value in a set of data streams * / public class Max {/ * traversal collection, and return the maximum age * @ param args * @ throws Exception * / public static void main (String [] args) throws Exception {final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment (); List tuple3List = DataSource.getTuple3ToList () DataStream dataStream = env.fromCollection (tuple3List) .map (new MapFunction () {@ Override public Tuple2 map (Tuple3 tuple3) throws Exception {return new Tuple2 (tuple3.f1,tuple3.f2) }}) .returns (Types.TUPLE (Types.STRING,Types.INT)) .keyby ((KeySelector) k-> k.f0) / / scroll by the quantity window, calculating .countWindow (3) .max (1) for every 3 input data streams. DataStream.print (); env.execute ("flink Max job");}}
Print the result
2 > (man,30) 4 > (girl,32) at this point, the study on "how to use the Max of Flink to get the maximum value in a set of data streams" is over. I hope to be able to solve your doubts. The collocation of theory and practice can better help you learn, go and try it! If you want to continue to learn more related knowledge, please continue to follow the website, the editor will continue to work hard to bring you more practical articles!