我正在尝试按照here步骤创建基本的Flink Aggregate UDF。我已经添加了依赖项()并实现了
public class MyAggregate extends AggregateFunction<Long, TestAgg> {..}
我已经实施了强制性方法以及其他一些方法:accumulate, merge, etc
。所有这些构建都没有错误。现在根据文档,我应该能够将其注册为
StreamExecutionEnvironment sEnv = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment sTableEnv = StreamTableEnvironment.getTableEnvironment(sEnv);
sTableEnv.registerFunction("MyMin", new MyAggregate());
但是,registerFucntion
似乎只想要ScalarFunction
作为输入。我收到了一个不兼容的类型错误:The method registerFunction(String, ScalarFunction) in the type TableEnvironment is not applicable for the arguments (String, MyAggregate)
任何帮助都会很棒。
答案 0 :(得分:2)
您需要为您所选择的语言导入StreamTableEnvironment
org.apache.flink.table.api.java.StreamTableEnvironment
。
org.apache.flink.table.api.StreamTableEnvironment
是StreamTableEnvironment
的Java和Scala变体的常见抽象类。我们注意到API的这一部分让用户感到困惑,我们将来会改进它。