Flink1.18 Transfrom - 分流【Filter】
1.Flink1.18环境代码编写2.Flink1.18传统批处理代码编写3.flink1.18传统流处理环境编写4.flink1.18流批一体DataStream代码编写5.Flink1.18 Source - FileSource6.Flink1.18 Source - fromElements7.Flink1.18 Source - KafkaSource8.Flink1.18 Source - 数据生成器9.Flink1.18 Transfrom - Map10.Flink1.18 Transfrom - flatMap11.Flink1.18 Transfrom - Filter12.Flink1.18 Transfrom - KeyBy13.Flink1.18 Transfrom - RichFunction14.Flink1.18 Transfrom - SimpleAggregate简单聚合算子15.Flink1.18 Transfrom - Reduce16.Flink1.18 Transfrom - 分区器【7种现成】17.Flink1.18 Transfrom - CustomPartition自定义分区器
18.Flink1.18 Transfrom - 分流【Filter】
19.Flink1.18 Transfrom - 分流【侧输出流 ProcessFunction】20.Flink1.18 Transfrom - 合流【Union】21.Flink1.18 Transfrom - 合流【Connect, 并行度为1的情况】22.Flink1.18 Transfrom - 合流【Connect 两个流数据进行关联】23.Flink1.18 Sink - 到文件 新版本写法sinkToFile24.Flink1.18 Sink - 到Kafka 新版本写法sinkTo的使用25.Flink1.18 Sink - 到Kafka自定义序列化类 新版本写法sinkTo的使用26.Flink1.18 Sink - 到JDBC 使用新依赖【因返回值是sinkFunction, 故目前只支持addSink使用, 1.18版本不支持sinkTo】27.Flink1.18 Sink - 精确一次ExactlyOnce到JDBC 使用新依赖【因返回值是sinkFunction, 故目前只支持addSink使用, 1.18版本不支持sinkTo】28.Flink1.18 Sink - 自定义sink29.大数据之路Week10_day07 (JavaAPI 操作Redis 与Hbase建立索引,通过查询redis中的索引查询Hbase数据)30.大数据之路Week10_day07 (JavaAPI 操作Redis 模拟将redis当作缓存,从Mysql数据库中查询数据)package com.xiaohu.transfrom.streamtranform;
import com.xiaohu.transfrom.MyPartitioner;
import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
/*
分流
需求:将数据按照奇数和偶数分开为两个流进行处理
*/
public class FilterDemo {
public static void main(String[] args) throws Exception{
Configuration conf = new Configuration();
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);
env.setParallelism(2);
//设置流处理环境还是批处理环境 DataSet API已经过时了,现在都是一套代码,进行设置
// env.setRuntimeMode(RuntimeExecutionMode.BATCH); //批处理
// env.setRuntimeMode(RuntimeExecutionMode.STREAMING); //流处理,默认就是流处理
//一般情况下,不会在代码中指定,不够灵活,一般都是在提交的时候,使用命令进行指定 flink run -Dexecution.runtime-mode=BATCH【STREAMING】 ...
DataStreamSource<String> socketDS = env.socketTextStream("master", 7777);
//可以使用两遍filter算子,分别过滤奇数或偶数
//缺点:socketDS被处理了两次
socketDS.filter(e->Integer.parseInt(e)%2==0).print("偶数流:");
socketDS.filter(e->Integer.parseInt(e)%2==1).print("奇数流:");
//使用侧输出流
env.execute();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~