当前位置:网站首页>Reduce of Flink
Reduce of Flink
2020-11-09 12:17:00 【Little dragon man who can't fly】
Reduce operator : Rolling aggregation of data streams , And return the merged result of each rolling aggregation calculation
Sample environment
java.version: 1.8.x
flink.version: 1.11.1
Sample data source ( Project code cloud download )
Flink System examples And Build development environment and data
Reduce.java
import com.flink.examples.DataSource;
import org.apache.flink.api.common.functions.ReduceFunction;
import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.api.java.tuple.Tuple3;
import org.apache.flink.streaming.api.datastream.KeyedStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import java.util.List;
/**
* @Description Reduce operator : Rolling aggregation of data streams , And return the merged result of each rolling aggregation calculation
*/
public class Reduce {
/**
* Ergodic set , Partition printing results of each rolling aggregation
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(4);
List<Tuple3<String,String,Integer>> tuple3List = DataSource.getTuple3ToList();
// Be careful : Use Integer When partitioning , It will result in incorrect partition results , convert to String Type output key The output is correct
KeyedStream<Tuple3<String,String,Integer>, String> keyedStream = env.fromCollection(tuple3List).keyBy(new KeySelector<Tuple3<String,String,Integer>, String>() {
@Override
public String getKey(Tuple3<String, String, Integer> tuple3) throws Exception {
//f1 For the gender field , With the same f1 value ( Gender ) partition
return String.valueOf(tuple3.f1);
}
});
SingleOutputStreamOperator<Tuple3<String, String, Integer>> result = keyedStream.reduce(new ReduceFunction<Tuple3<String, String, Integer>>() {
@Override
public Tuple3<String, String, Integer> reduce(Tuple3<String, String, Integer> t0, Tuple3<String, String, Integer> t1) throws Exception {
int totalAge = t0.f2 + t1.f2;
return new Tuple3<>("", t0.f1, totalAge);
}
});
result.print();
env.execute("flink Reduce job");
}
}
Print the results
## explain : Why each parameter of the first data object in each partition has a value , Because the rolling aggregation returns the first data object overlaid forward from the second data object , Start calculating , So the first data object doesn't enter at all reduce Method ;
2> ( Zhang San ,man,20)
2> (,man,49)
2> (,man,79)
4> ( Li Si ,girl,24)
4> (,girl,56)
4> (,girl,74)
版权声明
本文为[Little dragon man who can't fly]所创,转载请带上原文链接,感谢
边栏推荐
- 手写Koa.js源码
- 从编码、网络传输、架构设计揭秘腾讯云高质量、高可用实时音视频技术实践...
- JVM学习(五) -执行子系统
- TiDB x 微众银行 | 耗时降低 58%,分布式架构助力实现普惠金融
- Method of creating flat panel simulator by Android studio
- “开源软件供应链点亮计划 - 暑期 2020”公布结果 基于 ChubaoFS 开发的项目获得最佳质量奖
- FGC online service troubleshooting, this is enough!
- 接口测试如何在post请求中传递文件
- SQL statement to achieve the number of daffodils
- JVM学习(四)-垃圾回收器和内存分配
猜你喜欢
Analysis of the source code of ThinkPHP facade
Program life: from Internet addicts to Microsoft, bat and byte offer harvesters
In the future, China Telecom will make cloud computing service the main business of China Telecom
深圳C1考证历程
Tidb x micro banking reduces time consumption by 58%, and distributed architecture helps to realize inclusive finance
Interface tests how to pass files in post requests
Implement crud operation
Handwritten digital image recognition convolution neural network
Android NDK 开发实战 - 微信公众号二维码检测
解决IDEA快捷键 Alt+Insert 失效的问题
随机推荐
List of wechat video Number broadcasters October 2020
jsliang 求职系列 - 08 - 手写 Promise
服务应用 ClockService安卓实现闹钟
El table dynamic header
Interface tests how to pass files in post requests
Recommended tools for Mac
Impact of libssl on CentOS login
Biden wins the US election! Python developers in Silicon Valley make fun of Ku Wang in this way
开源ERP招聘了
Well, the four ways to query the maximum value of sliding window are good
AI fresh student's annual salary has increased to 400000, you can still make a career change now!
Reading design patterns adapter patterns
Ali, Tencent, Baidu, Netease, meituan Android interview experience sharing, got Baidu, Tencent offer
接口测试如何在post请求中传递文件
安全(杂记)
What really drags you down is sunk costs
JVM learning (4) - garbage collector and memory allocation
SQL Chapter 2 Chapter 3
Sql分组查询后取每组的前N条记录
JVM learning (5) - execution subsystem