[发明专利]跨平台移植Python程序的方法和装置有效
申请号: | 201710039509.0 | 申请日: | 2017-01-19 |
公开(公告)号: | CN106843875B | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 黄宁 | 申请(专利权)人: | 杭州数梦工场科技有限公司 |
主分类号: | G06F8/76 | 分类号: | G06F8/76;G06F8/30 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张润 |
地址: | 310024 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 平台 移植 python 程序 方法 装置 | ||
1.一种跨平台移植Python程序的方法,其特征在于,包括以下步骤:
接收用户编写的实现预设函数功能的Python程序,其中,所述预设函数包括Spark框架下的用户自定义函数UDF、用户自定义表生成函数UDTF,以及用户自定义聚合函数UDAF;
通过Python解析器将所述Python程序解析为Java类,并将所述Java类作为目标Java类;
采用Spark框架下实现预设函数功能的Java类调用所述目标Java类,以实现将所述Python程序移植至所述Spark框架下。
2.如权利要求1所述的跨平台移植Python程序的方法,其特征在于,在所述采用Spark框架下实现预设函数功能的Java类调用所述目标Java类中,包括:
采用Java程序编写所述Spark框架下实现预设函数功能的Java类;
采用Java反射机制调用所述目标Java类。
3.如权利要求1所述的跨平台移植Python程序的方法,其特征在于,在所述通过Python解析器将所述Python程序解析为Java类之前,还包括:
采用Java程序编写所述Python解析器。
4.如权利要求1所述的跨平台移植Python程序的方法,其特征在于,在所述接收用户编写的实现预设函数功能的Python程序之前,包括:
采用Python程序编写预设函数的基类,得到实现预设函数功能的Python基类。
5.如权利要求1所述的跨平台移植Python程序的方法,其特征在于,还包括:
对所述Python基类、所述Java类、所述Python解析器,以及所述Python程序进行脚本化处理,得到jar包;
在所述Spark框架下运行所述jar包,以实现将所述Python程序移植至所述Spark框架下。
6.一种跨平台移植Python程序的装置,其特征在于,包括:
接收模块,用于接收用户编写的实现预设函数功能的Python程序,其中,所述预设函数包括Spark框架下的用户自定义函数UDF、用户自定义表生成函数UDTF,以及用户自定义聚合函数UDAF;
解析模块,用于通过Python解析器将所述Python程序解析为Java类,并将所述Java类作为目标Java类;
调用模块,用于采用Spark框架下实现预设函数功能的Java类调用所述目标Java类,以实现将所述Python程序移植至所述Spark框架下。
7.如权利要求6所述的跨平台移植Python程序的装置,其特征在于,所述调用模块包括:
编写子模块,用于采用Java程序编写所述Spark框架下实现预设函数功能的Java类;
调用子模块,用于采用Java反射机制调用所述目标Java类。
8.如权利要求6所述的跨平台移植Python程序的装置,其特征在于,还包括:
第一编写模块,用于采用Java程序编写所述Python解析器。
9.如权利要求6所述的跨平台移植Python程序的装置,其特征在于,还包括:
第二编写模块,用于采用Python程序编写预设函数的基类,得到实现预设函数功能的Python基类。
10.如权利要求6所述的跨平台移植Python程序的装置,其特征在于,还包括:
处理模块,用于对所述Python基类、所述Java类、所述Python解析器,以及所述Python程序进行脚本化处理,得到jar包;
运行模块,用于在所述Spark框架下运行所述jar包,以实现将所述Python程序移植至所述Spark框架下。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州数梦工场科技有限公司,未经杭州数梦工场科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710039509.0/1.html,转载请声明来源钻瓜专利网。