[发明专利]跨平台移植Python程序的方法和装置有效
申请号: | 201710039509.0 | 申请日: | 2017-01-19 |
公开(公告)号: | CN106843875B | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 黄宁 | 申请(专利权)人: | 杭州数梦工场科技有限公司 |
主分类号: | G06F8/76 | 分类号: | G06F8/76;G06F8/30 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张润 |
地址: | 310024 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 平台 移植 python 程序 方法 装置 | ||
本发明提出一种跨平台移植Python程序的方法和装置,该跨平台移植Python程序的方法包括接收用户编写的实现预设函数功能的Python程序;通过Python解析器将Python程序解析为Java类,并将Java类作为目标Java类;采用Spark框架下实现预设函数功能的Java类调用目标Java类,以实现将Python程序移植至Spark框架下。通过本发明能够在Spark框架下运行实现预设函数功能的Python程序,简化Spark框架下程序的设计。
技术领域
本发明涉及软件开发技术领域,尤其涉及一种跨平台移植Python程序的方法和装置。
背景技术
随着软件开发技术的发展,项目开发人员开始引用Spark技术,Spark SQL是Spark技术的核心组件之一。由于Spark SQL本身支持的函数有限,因此推出了用户自定义函数UDF功能,用户可以在Spark SQL里自定义实际需要的UDF来处理数据。Python作为一种面向对象、直译式计算机程序设计语言,因其具有跨平台、公用库多、易开发等优势,应用趋势越来越高。
相关技术中,Spark SQL中并未提供采用Python程序编写UDF的功能,只是提供转换关键字在SQL中调用脚本的功能,即将表中的数据作为Python的标准输入,而后捕捉标准输出。
这种方式下,无法如采用Java程序编写应用程序编程接口,提供满足用户自定义表生成函数UDTF和用户自定义聚合函数UDAF的功能。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种跨平台移植Python程序的方法,能够在Spark框架下运行实现预设函数功能的Python程序,简化Spark框架下程序的设计。
本发明的另一个目的在于提出一种跨平台移植Python程序的装置。
为达到上述目的,本发明第一方面实施例提出的跨平台移植Python程序的方法,包括:接收用户编写的实现预设函数功能的Python程序;通过Python解析器将所述Python程序解析为Java类,并将所述Java类作为目标Java类;采用Spark框架下实现预设函数功能的Java类调用所述目标Java类,以实现将所述Python程序移植至所述Spark框架下。
在本发明的一个实施例中,在所述采用Spark框架下实现预设函数功能的Java类调用所述目标Java类中,包括:
采用Java程序编写所述Spark框架下实现预设函数功能的Java类;
采用Java反射机制调用所述目标Java类。
在本发明的一个实施例中,在所述通过Python解析器将所述Python程序解析为Java类之前,还包括:
采用Java程序编写所述Python解析器。
在本发明的一个实施例中,在所述接收用户编写的实现预设函数功能的Python程序之前,包括:
采用Python程序编写预设函数的基类,得到实现预设函数功能的Python基类。
在本发明的一个实施例中,还包括:
对所述Python基类、所述Java类、所述Python解析器,以及所述Python程序进行脚本化处理,得到jar包;
在所述Spark框架下运行所述jar包,以实现将所述Python程序移植至所述Spark框架下。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州数梦工场科技有限公司,未经杭州数梦工场科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710039509.0/2.html,转载请声明来源钻瓜专利网。