目录
主类
package myflink.EventTime;
import org.apache.flink.api.common.eventtime.*;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.TimeCharacteristic;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.ProcessFunction;
import org.apache.flink.util.Collector;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author pangsl
* @date 2021/5/25 17:02
* @Description Flink自定义事件事件和水位线
*/
public class WindowAndWatermarkDemo {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment sEnv = StreamExecutionEnvironment.getExecutionEnvironment();
//设置使用EventTime,默认使用processtime
sEnv.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
//设置并行度为1,默认并行度是当前机器的CPU数量
sEnv.setParallelism(1);
DataStream<String> input = sEnv.addSource(new MySource());
/*消息格式:String,time。例如:消息1,15115556459354*/
//解析输入的数据
DataStream<Tuple2<String, Long>> inputMap = input.map(new MapFunction<String, Tuple2<String, Long>>() {
@Override
public Tuple2<String, Long> map(String value) throws Exception {
String[] arr = value.split(",");
return new Tuple2<>(arr[0], Long.parseLong(arr[1]));
}
});
//抽取timestamp,生成Watermar

最低0.47元/天 解锁文章
529

被折叠的 条评论
为什么被折叠?



