【发布时间】:2019-10-01 19:21:43
【问题描述】:
我有一个问题,我有一个小的 CSV 数据,可以在 kafka 的帮助下在 flink 上启动。我的问题是我可以使用窗口和触发器一次又一次地调用相同的数据,还是它只会调用我的数据一次?
1,35
2,45
3,55
4,65
5,555
这是我想一次又一次调用的数据。虽然我自己不这么认为,因为我是初学者,所以最好采取第二意见。感谢您的帮助
【问题讨论】:
我有一个问题,我有一个小的 CSV 数据,可以在 kafka 的帮助下在 flink 上启动。我的问题是我可以使用窗口和触发器一次又一次地调用相同的数据,还是它只会调用我的数据一次?
1,35
2,45
3,55
4,65
5,555
这是我想一次又一次调用的数据。虽然我自己不这么认为,因为我是初学者,所以最好采取第二意见。感谢您的帮助
【问题讨论】:
不知道你所说的一次又一次调用数据是什么意思。但是您可以使用 SourceFunction 在 Flink 中创建该数据的流。例如,以下源创建该 csv 文件的流并每秒发出一次。
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<String> csvStream = env.addSource(new SourceFunction<String>() {
@Override
public void run(SourceContext<String> sourceContext) throws Exception {
String data = "1,35\n" +
"2,45\n" +
"3,55\n" +
"4,65\n" +
"5,555";
while(true) {
sourceContext.collect(data);
TimeUnit.SECONDS.sleep(1);
}
}
@Override
public void cancel() {
}
});
【讨论】: