Flink SQL 自定义函数标量函数(UDF)的示例是什么?
import org.apache.flink.table.annotation.InputGroup
import org.apache.flink.table.api._
import org.apache.flink.table.functions.ScalarFunction
class HashFunction extends ScalarFunction {
// 接受任意类型输入,返回 INT 型输出
def eval(@DataTypeHint(inputGroup = InputGroup.ANY) o: AnyRef): Int {
return o.hashCode();
}
}
val env = TableEnvironment.create(...)
// 在 Table API 里不经注册直接“内联”调用函数
env.from("MyTable").select(call(classOf[HashFunction], $"myField"))
// 注册函数
env.createTemporarySystemFunction("HashFunction", classOf[HashFunction])
// 在 Table API 里调用注册好的函数
env.from("MyTable").select(call("HashFunction", $"myField"))
// 在 SQL 里调用注册好的函数
env.sqlQuery("SELECT HashFunction(myField) FROM MyTable")
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。