Flink富函数

news/2024/11/13 8:47:59/文章来源:https://www.cnblogs.com/beststrive/p/18203706

   富函数是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 方法中初始化资源@Overridepublic void open(Configuration config) throws Exception {super.open(config);// 初始化代码,例如从配置中读取参数,或者打开文件等System.out.println("Initializing MyRichMapFunctionWithOpenClose");}// map 方法用于定义转换逻辑@Overridepublic Tuple2<String, Integer> map(Tuple2<String, Integer> value) throws Exception {// 转换逻辑return new Tuple2<>(value.f0, value.f1 * 2); // 示例:将整数部分翻倍}// 可以在 close 方法中清理资源@Overridepublic void close() throws Exception {// 清理代码,例如关闭文件,释放资源等System.out.println("Cleaning up MyRichMapFunctionWithOpenClose");super.close();}
}

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/709984.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#如何用最简单方法调用Python?

最近有群友咨询C#如何调用Python?小编尝试Python.NET过程中遭遇的版本兼容性和环境配置难题,小编决定寻找一个更为简单、稳定且对初学者友好的解决方案。小编搜索一番,除了Python.NET之外,还有其他途径能够帮助我们轻松地在C#项目调用Python脚本,那就是通过命令行调用,使…

创建你的-Mysql-数据库-全-

创建你的 Mysql 数据库(全)原文:zh.annas-archive.org/md5/853FEC9D976A75004408D5A9A661EDD8 译者:飞龙 协议:CC BY-NC-SA 4.0前言 1995 年发布的 MySQL 已成为最受欢迎的开源数据库系统。MySQL 和 phpMyAdmin 的普及使得许多非 IT 专家能够使用 MySQL 后端构建动态网站。…

【Unreal】虚幻GAS系统快速入门

【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!前言最近在用UE做单机ARPG的战斗系统,研究了一下GAS。本文主要介绍GAS各个模块的用途,以及特定功能的多种实现方法。为了让大部分人能…

[CISCN 2022 初赛]online_crt crash漏洞引起的命令执行

几天没做题了,有点生疏。看题吧。题目标签说是CVE-2022-1292,去看看。意思就是在$fname处构造恶意文件名导致的命令注入,而且前面没有认真过滤,也就是文件名命令执行。 看看题目源码:点击查看代码 import datetime import json import os import socket import uuid from …

团队作业5——测试与发布(Alpha版本)

这个作业属于哪个课程 软件工程这个作业要求在哪里 团队作业5——测试与发布(Alpha版本)这个作业的目标 Alpha版本测试报告、发布说明团队Gitee仓库链接 Gitee鏈接团队成员:姓名 学号蔡梓严(队长) 3122004686刘睿 3122004697吴炳辉 3122004709陈翼 3122006207林诗芸 322200…

解锁你的数据库:JPA和Hibernate的乐观锁与悲观锁

哈喽,大家好,我是木头左!引言 在当今的软件开发领域,数据库操作是不可或缺的一部分。然而,随着并发操作的增加,如何正确地处理并发问题是每个开发者都需要面对的挑战。本文将深入探讨JPA(Java Persistence API)和Hibernate这两种ORM(对象关系映射)工具中的乐观锁和悲…

易基因:WGBS+ChIP-seq等表观组分析揭示FOXM1 是抗肿瘤免疫应答的关键调控因子

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 食管癌是一种常见的恶性肿瘤,包括两种主要的组织学亚型:食管鳞状细胞癌(squamous cell carcinoma,ESCC)和食管腺癌(adenocarcinoma,EAC)。近两年来对抗肿瘤免疫应答机制的理解得到了显著提高,免疫检查…

Merry Christmas 礼物

Merry Christmas 圣诞快乐!! 我的圣诞礼物,yes~Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` Merry Christmas 礼物 日期:2020-12-25 阿珏 谈天说地 浏览:340次 评论:3条 M…

2020年迟到的年终总结

我一直在想究竟要不要写年终总结,又该写点什么好呢 纠结了一个多月,这件事一直放在心里,直到前几天和杨小 姐 杰打游戏时,问我:“年终总结写了吗?” 这才让我决定一定要写。Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过…

后台向vue页面传值

//向vue页面传值 //步骤1: // 现在js文件中规定调用的后台接口查询车辆状态详细 export function listCar(query) { return request({ url: /mqtts/start/liststat, method: get, params: query }) //步骤2: //在vue页面的script下引入方法 listCar import { listCar } from …

DashVector + DashScope升级多模态检索

本教程在前述教程(DashVector + ModelScope玩转多模态检索)的基础之上,基于DashScope上新推出的ONE-PEACE通用多模态表征模型结合向量检索服务DashVector来对多模态检索进行升级,接下来我们将展示更丰富的多模态检索能力。 DashVector + ModelScope 玩转多模态检索 行车记录…

真 逃避现实

一直以来我都有一个想买vr设备的愿望,今天终于圆了 在 @本群吉祥物 的推荐下,买了Oculus 品牌的VR一体机Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 真 逃避现实 日期:2020-9-…