flink程序中用filter算子过滤数据写一段demo
时间: 2024-10-20 16:06:53 浏览: 15
基于Flink+Doris构建电商实时数据分析平台(PC、移动、小程序)
Apache Flink是一个用于处理无界和有界数据流的开源流处理框架。在Flink程序中,`filter`算子用于从输入数据流中筛选出满足特定条件的元素。下面是一个简单的Java示例,演示如何使用`filter`算子:
```java
import org.apache.flink.api.common.functions.Predicate;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
public class FilterDemo {
public static void main(String[] args) throws Exception {
// 创建流处理环境
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 假设我们有一个包含`(key, value)`对的数据源 DataStream<Tuple2<String, Integer>> source = ...;
// 定义过滤条件,这里以数字大于5为例
Predicate<Integer> filterCondition = new Predicate<Integer>() {
@Override
public boolean test(Integer value) throws Exception {
return value > 5;
}
};
// 使用filter算子过滤数据
DataStream<Tuple2<String, Integer>> filteredStream = source.filter(filterCondition);
// 打印过滤后的数据流(通常会进一步处理)
filteredStream.print();
// 执行流处理任务
env.execute("Flink Filter Demo");
}
}
```
在这个例子中,`filteredStream`将只包含那些第二个字段(value)大于5的`(key, value)`对。运行这段代码后,你将看到满足条件的记录被打印出来。
阅读全文