自定义时间数据源继承SourceFunction
import java.util.Date
import org.apache.flink.streaming.api.functions.source.SourceFunction
class MySource extends SourceFunction[String]{
var flag = true
override def run(sourceContext: SourceFunction.SourceContext[String]): Unit = {
while (flag){
sourceContext.collect(new Date().getTime+"")
}
}
override def cancel(): Unit = {
flag = false
}
}
Flink读取时间数据源
import org.apache.flink.streaming.api.scala._
object ReadKafka {
def main(args: Array[String]): Unit = {
val env = StreamExecutionEnvironment.getExecutionEnvironment
val ds = env.addSource(new MySource)
ds.print()
env.execute()
}
}
该博客展示了如何在Apache Flink中创建一个自定义数据源,该数据源不断生成当前时间戳,并将其作为字符串收集。`MySource`类继承了`SourceFunction[String]`,在`run`方法中实现无限循环,每轮循环将新的时间戳添加到流中,直到被取消。当调用`cancel`方法时,通过设置标志变量`flag`为`false`来终止数据生成。最后,这个自定义源被添加到Flink流处理环境中并执行。
4965

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



