各位大佬,使用udf时遇到一个异常,请帮忙看看,使用方式如下 final UserDefinedFunction function = FunctionService .createFunction(functionEntry.getDescriptor(), classLoader, false); tEnv.registerFunction(functionName, (TableFunction<?>) function); 这是抛出的异常 #Flink
目测注册function的代码没问题。建议给出完整的上下文,大家才方便分析。 从异常猜测是你execute时当前线程的Classloader中无法找到udf对应的class。如果你是本地测试代码,可以尝试下在execute前面添加以下代码,看能否解决问题。 ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); ClassLoader newClassLoader = FlinkUserCodeClassLoaders.parentFirst(dependencies, oldClassLoader); Thread.currentThread().setContextClassLoader(newClassLoader); // dependencies是udf的jar URL数组,例如 {new File("D:/myUdf.jar").toURI().toURL()}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。