Flink从入门到放弃(入门篇4) DataStreamAPI
2024-10-10 10:50:42
戳更多文章:
DataStream算子将一个或多个DataStream转换为新DataStream。程序可以将多个转换组合成复杂的数据流拓扑。
DataStreamAPI和DataSetAPI主要的区别在于Transformation部分。
DataStream Transformation
map
- DataStream→DataStream
用一个数据元生成一个数据元。一个map函数,它将输入流的值加倍:
DataStream<Integer> dataStream = //...
dataStream.map(new MapFunction<Integer, Integer>() {
@Override
public Integer map(Integer value) throws Exception {
return 2 * value;
}
});
公众号
- 全网唯一一个从0开始帮助Java开发者转做大数据领域的公众号~
- 大数据技术与架构或者搜索import_bigdata关注~
- 海量【java和大数据的面试题+视频资料】整理在公众号,关注后可以下载~
image
FlatMap
- DataStream→DataStream
采用一个数据元并生成零个,一个或多个数据元。将句子分割为单词的flatmap函数:
dataStream.flatMap(new FlatMapFunction<String, String>() {
@Override
public void flatMap(String value, Collector<String> out)
throws Exception {
for(String word: value.split(" ")){
out.collect(word);
}
}
});
Filter
- DataStream→DataStream
计算每个数据元的布尔函数,并保存函数返回true的数据元。过滤掉零值的过滤器:
dataStream.filter(new FilterFunction<Integer>() {
@Override
public boolean filter(Integer value) throws Exception {
return value != 0;
}
});
KeyBy
- DataStream→KeyedStream
逻辑上将流分区为不相交的分区。具有相同Keys的所有记录都分配给同一分区。在内部,keyBy()是使用散列分区实现的。指定键有不同的方法。
此转换返回KeyedStream,其中包括使用被Keys化状态所需的KeyedStream。
dataStream.keyBy("someKey") // Key by field "someKey"
dataStream.keyBy(0) // Key by the first element of a Tuple
最新文章
- iOS可执行文件瘦身方法
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
- android加固系列—6.仿爱加密等第三方加固平台之动态加载dex防止apk被反编译
- Android开发者必备的42个链接
- Linux下搭建svn服务器(转)
- eclipse导入maven web 项目 但是不显示成web 项目
- 基于Android Volley的网络请求工具
- 前端面试题整理(css)
- ASP_Login
- 如何用js实现自适应,原来只是几行代码的事(╯‵□′)╯︵┻━┻
- python的MySQLdb模块在linux环境下的安装
- Linux时间子系统之一:认识timer_list和timer_stats和使用
- uWSGI 踩坑记
- 20175213吕正宏 MyCP(课下任务,必做)
- MSSQL sql server order by 1,2 的具体含义
- db2错误代码大全
- Java线程和多线程(九)——死锁
- Debian run jar like a native program
- 分布式锁之一:zookeeper分布式锁1
- POJ 1187 陨石的秘密 (线性DP)