Flink自定义数据源Source

博客主要讲述了使用Flink实现自定义数据源,在启动后可输出数据,聚焦于大数据领域的Flink技术应用。

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

实现自定义数据源

import org.apache.flink.streaming.api.functions.source.SourceFunction
import org.apache.flink.streaming.api.scala._
import scala.util.Random

//自定义数据类型
case class WaterSensor(id:String,ts:Long,vc:Double)
//创建类并继承SourceFunction指定类型
class MySource extends SourceFunction[WaterSensor]{
  val flag=true
  //重写run方法
  override def run(sourceContext: SourceFunction.SourceContext[WaterSensor]): Unit = {
    while(flag){
      sourceContext.collect(WaterSensor("sensor_"+new Random().nextInt(3),16092345345623L,new Random().nextInt(5)+40))
      //睡眠1秒
      Thread.sleep(1000)
    }
  }
  override def cancel(): Unit = ???
}

object SourceMy{
  def main(args: Array[String]): Unit = {
  //创建流处理执行环境
    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    //获取自定义数据源中数据
    val mydefDStream: DataStream[WaterSensor] = env.addSource(new MySource)
    //输出获取的数据
    mydefDStream.print()
    env.execute("MySource"}
}

启动后输出数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值