欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

ApacheFlink高级特性与高级应用之Flink中参数传递和容错设定

程序员文章站 2023-01-11 14:33:48
一、flink中的参数传递 flink中支持向Function传递参数,常见的有两种方式, 1.通过构造方法向Function传递参数 2.通过ExecutionConfig向Fun...

一、flink中的参数传递

flink中支持向Function传递参数,常见的有两种方式,
1.通过构造方法向Function传递参数
2.通过ExecutionConfig向Function传递参数

1.通过构造方法向Function传递参数(基本数据)

执行程序

package code.book.batch.sinksource.scala

import org.apache.flink.api.common.functions.MapFunction
import org.apache.flink.api.scala.{ExecutionEnvironment, _}

/**
  * Passing Parameters to Functions
  */
object Parameters001 {
  def main(args: Array[String]): Unit = {
    val env = ExecutionEnvironment.getExecutionEnvironment

    //1.准备工资数据
    case class Worker(name: String, salaryPerMonth: Double)
    val salary = env.fromElements(2123.5, 4345.2, 5987.3, 7991.2)

    //2.准备补助数据
    val bouns = 38.111

    //3.计算工资和补助之和
    salary.map(new SalarySumMap(bouns)).print()
    class SalarySumMap(b: Double) extends MapFunction[Double, Double] {
      override def map(s: Double): Double = {
        //工资+补助
        s + b
      }
    }
  }
}

执行效果

2161.611
4383.311
6025.411
8029.311