首页 > 其他分享 >Flink富函数

Flink富函数

时间:2024-05-21 12:40:13浏览次数:18  
标签:函数 open Flink Tuple2 close 方法 public

   富函数是DataStream API提供的函数接口,Flink的函数都有它的Rich版本,它与其他函数不同的是,富函数可以获取到运行环境上下文,初始化参数,拥有生命周期方法等,可通过它进行自定义复杂功能。我们常见的如RichMapFunction、RichFilterFunction等。

    富函数的生命周期主要通过重写三个方法来实现。

(1)提供open()方法,它是 rich function 的初始化方法,当一个算子例如 map 或者 filter被调用之前 open()会被调用。

(2)close()方法是生命周期中的最后一个调用的方法,做一些清理工作。

(3)getRuntimeContext()方法提供了函数的 RuntimeContext 的一些信息,例如函数执行的并行度,任务的名字,以及 state 状态。

    具体java代码使用可参考:

public class MyRichMapFunction extends RichMapFunction<Tuple2<String, Integer>, Tuple2<String, Integer>> {
    // 可以在 open 方法中初始化资源
    @Override
    public void open(Configuration config) throws Exception {
        super.open(config);
        // 初始化代码,例如从配置中读取参数,或者打开文件等
        System.out.println("Initializing MyRichMapFunctionWithOpenClose");
    }

    // map 方法用于定义转换逻辑
    @Override
    public Tuple2<String, Integer> map(Tuple2<String, Integer> value) throws Exception {
        // 转换逻辑
        return new Tuple2<>(value.f0, value.f1 * 2); // 示例:将整数部分翻倍
    }

    // 可以在 close 方法中清理资源
    @Override
    public void close() throws Exception {
        // 清理代码,例如关闭文件,释放资源等
        System.out.println("Cleaning up MyRichMapFunctionWithOpenClose");
        super.close();
    }
}

    根据编写的代码查看类关系图如图1,绿色虚线代表实现一个接口,绿色实线代表继承一个类,蓝色实线代表继承一个抽象类。

 

标签:函数,open,Flink,Tuple2,close,方法,public
From: https://www.cnblogs.com/beststrive/p/18203706

相关文章

  • 【代码】--库函数学习 temperature.c
    1. 封装的函数   用到了内核中的hwmon子系统,   hwmon子系统作为Linux内核中的一个子系统,用于监控硬件传感器的状态(设备的温度、电压和风扇转速)和提供对硬件传感器的访问接口。   在应用层,对传感器信息的读取,本质上是对驱动中hwmon子系统在注册传感器设备时所......
  • 方法:类似其它语言的函数
    方法:类似其它语言的函数方法的重载的规则:方法名称必须相同。参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。​顺序不同是指类型的顺序不同,与你起什么变量名无关,比如inta,intb与intb,inta就是相同顺序方法的返回类型可以相同也可以不相同。......
  • 函数对象、装饰器、闭包函数
    函数对象Python中一切皆对象【1】可以直接被引用定义一个函数用一个新的变量名来存,用新的变量名来调用【2】可以作为元素被储存功能字典的函数地址【3】函数可以作为参数传递给另一个函数将函数的内存地址作为参数传递【4】函数的返回值可以是函数直接将函数的内存地址返......
  • Oracle ORA-06575: 程序包或函数WM_CONCAT处于无效状态
    ------OracleORA-06575:程序包或函数WM_CONCAT处于无效状态----失效原因:版本不支持,WM_CONCAT是oracle的非公开函数,并不鼓励使用,新版本oracle并没有带此函数,需要手工加上。--首先使用dba账号登录oracle数据库sqlplussys/sysassysdba--解锁wmsys用户(可以是你自己定义的......
  • lodash已死?radash库方法介绍及源码解析 —— 函数柯里化 + Number篇
    写在前面tips:点赞+收藏=学会!主页有更多其他篇章的方法,欢迎访问查看。本篇我们继续介绍radash中函数柯里化和Number相关的方法使用和源码解析。函数柯里化chain:创建一个函数链并依次执行使用说明功能描述:用于创建一个函数链,该链依次执行一系列函数,每个函数的输出......
  • 终于搞懂了!原来 Vue 3 的 generate 是这样生成 render 函数的
    前言在之前的面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?文章中讲了transform阶段处理完v-for、v-model等指令后,会生成一棵javascriptAST抽象语法树。这篇文章我们来接着讲generate阶段是如何根据这棵javascriptAST抽象语法树生成render函数字符串的,本文中使用的v......
  • 数据库中了解的知识点:视图、触发器、事务、存储过程、函数、流程控制、索引
    【视图】1什么是视图?2视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接用3其实视图也是表45为什么要用视图?6如果要频繁的操作一张虚拟表,就可以制作成视图,下次可以直接操作78如何操作9#固定语法10createview......
  • Flink精确消费一次
     在大数据计算里面,计算引擎是处于承上启下的作用,对上承接数据源,对下承接各种各种数据库,比如mysql、oracle。对于任何数据计算来说要想精确消费一次,就需要支持事务或者幂等,我们最常见的支持事务的就是单点的oracle、mysql数据库,那么Flink作为分布式计算引擎,是如何做到精确消费一次......
  • x64 环境下_findnext() 函数报错——0xC0000005: 写入位置 0xFFFFFFFFDF47C5A0 时发生
    CSDN搬家失败,手动导出markdown后再导入博客园最近在搞单目相机位姿估计,相机标定参考了【OpenCV3学习笔记】相机标定函数calibrateCamera()使用详解(附相机标定程序和数据)提供的代码。/*@paramFile_Directory为文件夹目录@paramFileType为需要查找的文件类型@param......
  • opencv imshow 函数显示 float64 格式错误_cv2_imshow float
    CSDN搬家失败,手动导出markdown后再导入博客园在模拟高斯光斑的过程中,手动生成了下图所示的图像,使用cv2.imwrite()函数保存正常。![[output/attachments/fa4dbbeff2a5a1f2f99acd241f220fc7_MD5.png]]然而在使用cv2.imshow()函数显示时却出现错误![[output/attachments/e80ba8......