Flink自定义函数之标量函数怎么用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下Flink自定义函数之标量函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景flink本身给我
千家信息网最后更新 2026年11月02日Flink自定义函数之标量函数怎么用
小编给大家分享一下Flink自定义函数之标量函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
背景
flink本身给我们提供了大量的内置函数,已经能满足我们绝大部分的需求,但是如果确实是碰到了一些特殊的场景,无法满足我们的需求的时候,我们可以自定义函数来解决,今天我们主要讲一下最简单的自定义函数-ScalarFunction。
实例讲解
定义函数
首先我们来实现一个最简单的标量函数,主要功能就是对两个数加和操作,实现标量函数需要继承抽象类ScalarFunction,然后实现eval方法,代码如下:
public static class SumFunction extends ScalarFunction{
public Integer eval(Integer a, Integer b){
return a + b;
}
}
通过程序注册函数
//通过程序的方式来注册函数
SumFunction sumFunction = new SumFunction();
tableEnv.registerFunction("mysum", sumFunction);
Table table1 = tableEnv.sqlQuery("select mysum(1,2)");
tableEnv.toAppendStream(table1, Row.class).print();
通过sql注册函数
//通过sql的方式来注册函数
String className = SumFunction.class.getName();
String sql = "create temporary function default_catalog.default_database.mysum1" +
" as '" + className + "'";
tableEnv.sqlUpdate(sql);
Table table2 = tableEnv.sqlQuery("select mysum1(3,4)");
tableEnv.toAppendStream(table2, Row.class).print();
之后我们可以通过StreamTableEnvironment类的listFunctions方法列出来所有的函数来看下我们自定义的函数是否在其中.
//列出来所有的函数,看是否包含我们定义的函数
String[] functions = tableEnv.listFunctions();
Stream.of(functions).filter(f->f.startsWith("mysum")).forEach(System.out::println);
最后如果自定义的jar和主程序不在一个jar包,通过命令行提交任务的时候,记得通过参数--classpath(简写-C)将包含自定义函数的jar添加到classpath里。
以上是"Flink自定义函数之标量函数怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
函数
标量
篇文章
内容
方式
方法
时候
程序
需求
特殊
不怎么
两个
主程序
代码
任务
功能
参数
可以通过
命令
场景
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河南云网互联网络科技有限公司
互联网科技的发展
互联网 科技创新
高科技与互联网
远拓互联网科技
天津摩尔互联网科技
撒么互联网科技公司
互联网科技公司名称
恒银科技与互联网金融
顶级互联网科技成果有哪些
厦门比较好的科技互联网公司
乌苏新华互联网科技做什么的
爱医互联网络科技
产业互联网科技服务公司
上海乐五互联网科技有限公司
福州德业互联网科技
唐山双旺合互联网科技产业园
优雇互联网科技有限公司
利用互联网等科技手段
互联网科技快速发展优美句子
无线互联网科技
互联网科技上市公司
海南购全球互联网科技
卫星互联网科技股票
华夏恒生科技与互联网科技
互联网行业科技股
济南有互联网科技公司吗
国大互联网教育科技有限公司薪资
安徽零酒互联网科技有限公司
互联网的科技体现在哪里