Flink Table API & SQL 自定义 Scalar 标量函数

本文介绍了Flink中的标量函数,包括其定义、如何自定义以及在Table API和SQL中的调用方式。通过一个AddScalarFunction示例展示了如何实现两个数值相加的自定义函数,并讲解了注册和调用的细节。
摘要由CSDN通过智能技术生成

1. 什么是标量函数

Scalar Function 也被称为标量函数,将 0 个、1个或多个标量值映射为一个新的标量值。输入与输出是一对一的关系,即读入一行数据,写出一条输出值。在自定义标量函数时,用户需要确认 Flink 内部是否已经实现相应的标量函数,如果已经实现则可以直接使用;如果没有实现,那么在注册自定义函数过程中,需要和内置的其他标量名称区分开,否则会导致注册函数失败,影响应用的正常执行。Flink 常见的内置标量函数有 DATE()、UPPER()、LTRIM() 等。

2. 定义标量函数

定义 Scalar Function 需要继承 org.apache.flink.table.functions.ScalarFunction 类。实现函数的类必须声明为 public、不能是抽象类,并且可以全局访问。因此,不允许使用非静态内部类或者匿名类。如果要在 Catalog 中存储用户自定义的函数,那么该类必须具有一个默认构造函数并且必须在运行时可实例化:

public class AddScalarFunction 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@SmartSi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值