尝试调用:
get_gateway().jvm.Test2.Test2.main(None)
> 在 2021年2月5日,18:27,瞿叶奇 <389243...@qq.com> 写道:
>
> 老师,您好,列表参数就不在报错,但是还是没有加载进去。
> >>> from pyflink.util.utils import add_jars_to_context_class_loader
> >>> add_jars_to_context_class_loader(['file:///root/Test2.jar
> >>> <file:///root/Test2.jar>'])
> >>> from pyflink.java_gateway import get_gateway
> >>> get_gateway().jvm.Test2.main()
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File
> "/root/qyq_f/flink-1.12.0/opt/python/pyflink.zip/pyflink/util/exceptions.py",
> line 191, in wrapped_call
> TypeError: Could not found the Java class 'Test2.main'. The Java dependencies
> could be specified via command line argument '--jarfile' or the config option
> 'pipeline.jars'
> java code:
> package Test2;
> public class Test2 {
> public int add(int a, int b) {
> return a + b;
> }
>
> public static void main(String[] args) {
> int a = 1;
> int b = 2;
> Test2 t2=new Test2();
> int c=t2.add(a,b);
> System.out.print(c);
> }
> }
>
>
> ------------------ 原始邮件 ------------------
> 发件人: "user-zh" <weizhong0...@gmail.com <mailto:weizhong0...@gmail.com>>;
> 发送时间: 2021年2月5日(星期五) 晚上6:01
> 收件人: "user-zh"<user-zh@flink.apache.org <mailto:user-zh@flink.apache.org>>;
> 主题: Re: pyflink的py4j里是不是可以调用我自己写的java程序 ?
>
> 图片似乎无法加载,不过我猜应该是参数类型问题?这个函数需要参数类型为List:
> add_jars_to_context_class_loader(["file:///xxx <file:///xxx> <file:///xxx
> <file:///xxx>>"])
>
> > 在 2021年2月5日,17:48,瞿叶奇 <389243...@qq.com> 写道:
> >
> > 老师,您好,
> > 我升级到了flink1.12.0了,用这个函数加载类报错了,是我url写的有问题吗?pyfink有没有连接hdfs认证kerberos的方法呢?
> >
> >
> >
> >
> > ------------------ 原始邮件 ------------------
> > 发件人: "user-zh" <weizhong0...@gmail.com>;
> > 发送时间: 2021年2月5日(星期五) 下午3:53
> > 收件人: "user-zh"<user-zh@flink.apache.org>;
> > 主题: Re: pyflink的py4j里是不是可以调用我自己写的java程序 ?
> >
> > Hi,
> >
> > 首先你需要将你的java程序打成jar包,之后热加载你的jar包, 目前pyflink里有一个util方法可以直接调用:
> > from pyflink.util.utils import add_jars_to_context_class_loader
> > add_jars_to_context_class_loader("file:///xxx <file:///xxx>") #
> > 注意需要是url格式的路径
> >
> > 然后就能通过java gateway进行调用了:
> > from pyflink.java_gateway import get_gateway
> > get_gateway().jvm.your.class.name.main()
> >
> > 注意这个util方法是在较新的版本里才有,你可能需要升级一下pyflink版本
> >
> > > 在 2021年2月5日,10:48,瞿叶奇 <389243...@qq.com> 写道:
> > >
> > > 老师,我想用java jvm认证kerberos程序,供给pyflink使用,就是说如果是函数的话,就只是个调用的无输入函数,怎么样才能做到?
> > >
> > >
> > >
> > >
> > > ------------------ 原始邮件 ------------------
> > > 发件人:
> > > "user-zh"
> > >
> > > <hxbks...@gmail.com <mailto:hxbks...@gmail.com>>;
> > > 发送时间: 2021年2月5日(星期五) 上午10:35
> > > 收件人: "user-zh"<user-zh@flink.apache.org
> > > <mailto:user-zh@flink.apache.org>>;
> > >
> > > 主题: Re: pyflink的py4j里是不是可以调用我自己写的java程序 ?
> > >
> > >
> > >
> > > Hi,
> > >
> > > 你是想使用java写的udfs吗,你可以调用register_java_function或者create_java_temporary_function来注册你用java写的udfs,具体可以参考文档[1]
> > >
> > > [1]
> > > https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/python/table-api-users-guide/udfs/python_udfs.html#scalar-functions
> > >
> > > <https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/python/table-api-users-guide/udfs/python_udfs.html#scalar-functions>
> > >
> > > Best,
> > > Xingbo
> > >
> > >
> > > 瞿叶奇 <389243...@qq.com <mailto:389243...@qq.com>> 于2021年2月4日周四 下午5:53写道:
> > >
> > > > 请问如何实现pyflink的py4j调用我自己写的java程序 ?
> >
> >