项目上需要实现将中文转为拼音的功能,python没有转拼音的内置函数,需要自定义函数。将使用第三方包的python资源,注册为UDF函数,调用该函数报错,提示函数未定义,对注册为UDF函数的pyhon资源是否有限制,是否不能使用第三方包?如果将python资源中的代码修改为不调用第三方包,则可以成功调用UDF函数
。
第1步:上传名称为pypinyin的第三方包;
第2步:创建python资源;
第3步:第2步创建的资源中编写python代码,定义入参、出参;
第4步:注册UDF;
第5步:调用UDF,提示找不到函数。
MaxCompute支持您在Python UDF中引用第三方包,例如Numpy包、需要编译的第三方包或依赖动态链接库的第三方包。
通过Python UDF使用第三方包支持的场景如下:
使用Numpy包(Python 3 UDF)
您需要修改Numpy包的后缀格式,基于MaxCompute客户端上传Numpy包,并注册函数。函数注册成功后即可通过Python 3 UDF调用。
使用需要编译的第三方包
您需要在与MaxCompute兼容的环境下,对第三方资源包中的setup.py脚本进行编译生成WHEEL包,并修改后缀格式。基于MaxCompute客户端上传包,并注册函数。函数注册成功后即可通过Python UDF调用。推荐使用Linux环境,Windows用户推荐使用Docker。
使用依赖动态链接库的第三方包
您需要基于第三方包的源码编译so链接库,然后编译生成WHEEL包,并修改后缀格式。基于MaxCompute客户端上传包和so链接库文件,并注册函数。函数注册成功后即可通过Python UDF调用。
前提条件 在执行操作前,请确认已完成如下操作:
已安装Python环境。推荐使用Python 3。
已安装并配置MaxCompute客户端。客户端配置详情请参见安装并配置MaxCompute客户端。
如果您通过Python UDF使用需要编译的第三方包,请确认已安装pip、setuptools(通过pip install setuptools安装)和wheel(通过pip install wheel安装)。
如果您使用的第三方包为GDAL 3.0及以上版本,请确认已安装PROJ 6。
如果您通过Docker编译第三方包,请确认已安装Docker,详情请参见Docker安装文档。
您可以通过MaxCompute内置的Python 3环境使用Numpy包。MaxCompute内置的Python 2环境默认安装了Numpy,不需要手动上传Numpy包。
如果第三方包是PyPI页面中格式为TAR.GZ的压缩包,或从GitHub下载的源码包,这些包解压后的根目录下有时会存在setup.py文件。在使用这种类型的第三方包前,您需要先在与MaxCompute兼容的环境下将setup.py编译生成WHEEL包,然后再执行上传资源及注册函数操作,即可通过Python UDF调用第三方包。
部分Python第三方包除了依赖Python库,可能还会依赖其它动态链接库的依赖。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。