flink通过类构造函数给算子传递外部参数

场景: flink中的算子在初始化时想添加一些外部参数,这些外部参数只有在main启动时才会传入,可能数据的值不同

自已创建了一个类继承了RichFlatMapFunction<Row, Row> implements Serializable,实现了RichFlatMapFunction的flatMap方法,像下面的示例一样

public class FlatFunction1 implements FlatMapFunction<Row, Row> {
  private String a;
  private String b;
// 写了一个带参数的构造器,这样初始化这个算子时,就会在构造器中初始化一些参数,
  public FlatFunction1(Object c){
  	//用c初始化 a,b
	}
  @Override
  public void flatMap(String value, Collector<String> out) {
    //执行逻辑
  }
}

通过带参数的构造函数,在算子初始化就可以对算子内部的字段初始化

警告:我这些参数是算子内私有的,也就是private,但是不能写成static修饰的,否则如果是像k8s托管flink集群的这种方式,每一个task虽然都初始化了,但是执行时初始化后的字段还是null

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值