DataWorks数据开发与运行如何在pyodps调用第三方包?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 PyODPS 中调用第三方包可以通过以下两种方式实现:
from odps import ODPS
import oss2
# 初始化 ODPS 实例
o = ODPS('<your-access-id>', '<your-access-key>', 'http://service.odps.aliyun.com/api')
# 设置 SDK 上传路径
oss_client = oss2.Auth('<your-aliyun-access-id>', '<your-aliyun-access-key>')
bucket = oss_client.create_bucket('<your-bucket-name>')
# 将第三方包上传至 OSS
oss_client.put_object_from_file(bucket, '<package-name>.tar.gz', '/path/to/<package-name>.tar.gz')
# 安装第三方包
o.run_sql("CREATE EXTERNAL LIBRARY <library-name> LOCATION '<http://<your-bucket-name>.oss-cn-hangzhou.aliyuncs.com/<package-name>.tar.gz>'")
!pip install <package-name>
# 或者
!conda install <package-name>
安装完成后,您可以在代码中使用 import
语句来引用这些第三方包。
在DataWorks的数据开发中,您可以调用第三方包来满足您的依赖需求。首先,确保PyODPS节点已启用第三方包支持:在DataWorks项目的配置中,应启用PyODPS节点的第三方包支持选项。然后,通过在PyODPS节点中使用 !pip install 命令安装所需的第三方包,例如: !pip install package_name,这里的package_name应替换为您所需的具体第三方包名称。
创建PyODPS节点后,您就可以在节点中直接导入已安装的第三方包,并在代码中使用它们。值得注意的是,如果您需要在MaxCompute的Python UDF中引用Python第三方包,只能在DataWorks独享调度资源组本地运行PyODPS任务代码时引用这些包。此外,如果PyODPS任务需要访问特殊的网络环境(如VPC网络或IDC网络中的数据源或服务等),请使用独享调度资源组,并参考网络连通解决方案打通独享资源组与目标环境的网络连通。
请注意,PyODPS节点分为PyODPS 2和PyODPS 3两种,二者的区别在于底层Python语言版本不同。同时,DataWorks运维助手中安装的Python第三方包也仅支持在DataWorks独享调度资源组本地运行PyODPS任务代码时引用。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。