当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- The choice of domain name of foreign trade self built website
- Vscode plug-in configuration pointing North
- Looking for better dynamic getter and setter solutions
- 开源ERP招聘了
- Open source ERP recruitment
- 大型项目Objective-C - NSURLSession接入短信验证码应用实例分享
- 手写Koa.js源码
- AI应届生年薪涨到40万了,你现在转行还来得及!
- On the calculation of non interaction polarizability
- JVM learning (6) - memory model and thread
猜你喜欢
Handwriting Koa.js Source code
Wechat circle
Understanding runloop in OC
关于无相互作用极化率的计算
外贸自建网站域名的选择— Namesilo 域名购买
Detailed explanation of [golang] GC
Program life: from Internet addicts to Microsoft, bat and byte offer harvesters
Front end code style practice prettier + eslint + git hook + lint staged
Kubernetes业务日志收集与监控
Android权限大全
随机推荐
Handwriting Koa.js Source code
使用TreeView树型菜单栏(递归调用数据库自动创建菜单)
Tidb x micro banking reduces time consumption by 58%, and distributed architecture helps to realize inclusive finance
Where should wild card SSL certificate register and apply
Understanding data structures starts with this article~
FGC online service troubleshooting, this is enough!
Analysis of the source code of ThinkPHP facade
In the future, China Telecom will make cloud computing service the main business of China Telecom
SQL Chapter 2 Chapter 3
Visit Jingdong | members of Youth Innovation Alliance of China Academy of space technology visit Jingdong headquarters
Windows must be installed with efficiency software!
如何用函数框架快速开发大型 Web 应用 | 实战
A simple way to realize terminal text paste board
Reading design patterns adapter patterns
分库分表的 9种分布式主键ID 生成方案,挺全乎的
vscode 插件配置指北
安全(杂记)
jsliang 求职系列 - 08 - 手写 Promise
JVM learning (6) - memory model and thread
050_ object-oriented