flink算子使用

本文介绍了Apache Flink中数据读取的四种方式,包括本地文件、socket流、集合数据及自定义Source。接着详细讲解了Flink的算子使用,如reduce、splitStream、connect、不同类型的窗口(TimeWindow、CountWindow、EventTime)以及ProcessFunction的运用,帮助理解Flink流处理中的数据操作。
摘要由CSDN通过智能技术生成
一.flink读取数据的几种方式

1.1读取本地文件

//    创建批处理的执行环境
    val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
//    从文件读取数据
    val inputDataSet: DataSet[String] = env.readTextFile("input/test.txt")

1.2读取socket流数据

 //    创建批处理的执行环境
    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
    //    从端口读取数据
    val textDS: DataStream[String] = env.socketTextStream(host, port)

1.3读取集合的数据

val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
val stream: DataStream[SensorReading] = env.fromCollection(List(
      SensorReading("sen_1", 15151515, 35.15616165165),
      SensorReading("sen_1", 15151515, 35.15616165165),
      SensorReading("sen_2", 15151515, 35.15616165165),
      SensorReading("sen_2", 15151515, 35.15616165165),
      SensorReading("sen_3", 15151515, 35.15616165165),
      SensorReading("sen_4", 15151515, 35.15616165165)
    ))

case class SensorReading(id:String,timeStamp:Long,temperature:Double);

1.4自定义source读取数据

object Fink_Collection_ScourgeTest {
  val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
  def main(args: Array[String]): Unit = {
    sourceMe()
  }

  def sourceMe(): Unit ={
    val strean: DataStream[SensorReading] = env.addSource(new SensorSource)
    strean.print().setParallelism(1)
    env.execute("sourceMe")
  }

}

case class SensorReading(id:String,timeStamp:Long,temperature:Double);

class SensorSource extends S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值