当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Well, these four ways to query the maximum value of sliding window are good
- Fedora 33 Workstation 的新功能
- Wealth and freedom? Ant financial services suspended listing, valuation or decline after regulation
- 苏宁基于知识图谱的大规模告警收敛和根因定位实践
- Implement crud operation
- Adobe Experience Design /Xd 2020软件安装包(附安装教程)
- Android架构之Navigation组件(二)
- Aren't you curious about how the CPU performs tasks?
- Reading design patterns adapter patterns
- 共创爆款休闲游戏 “2020 Ohayoo游戏开发者沙龙”北京站报名开启
猜你喜欢
After SQL group query, get the first n records of each group
Android NDK 开发实战 - 微信公众号二维码检测
Nine kinds of distributed primary key ID generation schemes of sub database and sub table are quite comprehensive
What really drags you down is sunk costs
Jsliang job series - 08 - handwritten promise
Is SEO right or wrong?
Solve the problem of idea shortcut key Alt + insert invalid
The history of C1 research in Shenzhen
050_ object-oriented
The third way to realize webrtc in embedded devices
随机推荐
The choice of domain name of foreign trade self built website
导师制Unity网课 双十一优惠报名进行中
微信视频号播主排行榜2020年10月
Configure switch trunk interface traffic local priority forwarding (cluster / stack)
使用TreeView树型菜单栏(递归调用数据库自动创建菜单)
Review of hot spots of last week (11.2-11.8)
线上服务的FGC问题排查,看这篇就够了!
Sql分组查询后取每组的前N条记录
Front end code style practice prettier + eslint + git hook + lint staged
Analysis of the source code of ThinkPHP facade
Aren't you curious about how the CPU performs tasks?
Python zero basics tutorial (01)
技美那么贵,不如找顾问 | AALab企业顾问业务
Gather in Beijing! Openi / O 2020 Qizhi Developer Conference enters countdown
Vscode plug-in configuration pointing North
Interface tests how to pass files in post requests
Stack & queue (go) of data structure and algorithm series
As a user, you can't get rid of the portrait!
Show profile analysis of SQL statement performance overhead
Handwritten digital image recognition convolution neural network