自定义Flink的数据源

该博客展示了如何在Apache Flink中创建一个自定义数据源,该数据源不断生成当前时间戳,并将其作为字符串收集。`MySource`类继承了`SourceFunction[String]`,在`run`方法中实现无限循环,每轮循环将新的时间戳添加到流中,直到被取消。当调用`cancel`方法时,通过设置标志变量`flag`为`false`来终止数据生成。最后,这个自定义源被添加到Flink流处理环境中并执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义时间数据源继承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()

  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值