Apache flink 在Apache Flink中注册聚合UDF

Apache flink 在Apache Flink中注册聚合UDF,apache-flink,flink-streaming,flink-sql,Apache Flink,Flink Streaming,Flink Sql,我尝试按照以下步骤创建基本的Flink聚合UDF。我已经添加了依赖项()并实现了 public class MyAggregate extends AggregateFunction<Long, TestAgg> {..} 但是,registerfuntion似乎只需要一个ScalarFunction作为输入。我收到一个不兼容的类型错误:类型表环境中的方法registerFunction(String,ScalarFunction)不适用于参数(String,MyAggregate

我尝试按照以下步骤创建基本的Flink聚合UDF。我已经添加了依赖项()并实现了

public class MyAggregate extends AggregateFunction<Long, TestAgg> {..}
但是,
registerfuntion
似乎只需要一个
ScalarFunction
作为输入。我收到一个不兼容的类型错误:
类型表环境中的方法registerFunction(String,ScalarFunction)不适用于参数(String,MyAggregate)


任何帮助都会很好。

您需要为您选择的语言导入
StreamTableEnvironment
,在您的例子中是
org.apache.flink.table.api.java.StreamTableEnvironment

org.apache.flink.table.api.StreamTableEnvironment
StreamTableEnvironment
的Java和Scala变体的常见抽象类。我们注意到API的这一部分让用户感到困惑,我们将在将来对其进行改进

    StreamExecutionEnvironment sEnv = StreamExecutionEnvironment.getExecutionEnvironment();
    StreamTableEnvironment sTableEnv = StreamTableEnvironment.getTableEnvironment(sEnv);
    sTableEnv.registerFunction("MyMin", new MyAggregate());