在PyODPS节点中调用第三方包https://help.aliyun.com/zh/dataworks/use-cases/use-a-pyodps-node-to-reference-a-third-party-package?spm=a2c4g.11186623.0.i322
使用限制
在PyODPS节点中调用第三方包仅支持使用独享调度资源组。创建及使用独享调度资源组,详情请参见独享调度资源组。
DataWorks建议您在PyODPS节点内获取到本地处理的数据不超过50 MB,该操作受限于DataWorks执行资源的不同规格(包括公共调度资源组和独享调度资源组),处理的本地数据过多并超出操作系统阈值时可能发生OOM(Got killed)错误。请避免在PyODPS节点中写入过多的数据处理代码。详情请参见高效使用PyODPS最佳实践。
如果您发现有Got killed报错,即表明内存使用超限,进程被中止。因此,请尽量避免本地的数据操作。通过PyODPS发起的SQL和DataFrame任务(除to_pandas外)不受此限制。
非自定义函数代码可以使用平台预装的Numpy和Pandas。不支持其他带有二进制代码的三方包。
由于兼容性原因,在DataWorks中,options.tunnel.use_instance_tunnel默认设置为False。如果需要全局开启instance tunnel,需要手动将该值设置为True。
在 DataWorks 上使用 PyODPS 进行 MaxCompute 任务开发和调度是非常常见的一种方法,但是也有一些使用限制需要注意:
安装依赖库:在使用 PyODPS 时,需要安装相应的依赖库,如 requests、six、pytz 等,需要确保这些依赖库与 DataWorks 环境兼容。在 DataWorks 中,可以使用 Python 依赖包管理功能来安装和管理依赖库。
存在调度并发数限制:在 DataWorks 中,同一个项目下的任务并发数是有限制的,如果任务数量过多或者任务执行时间过长,可能会导致任务等待或者执行失败。因此,建议您在任务设计时考虑任务并发数、任务执行时间等因素,以避免任务并发数过多或者任务执行时间过长的问题。
在DataWorks上使用PyODPS,存在一些特定的使用限制。首先,对于PyODPS节点,获取本地处理的数据的大小不能超过50 MB,节点运行时占用的内存也不能超过1 GB,否则节点任务可能会被系统中止。因此,为了确保任务的顺利进行,避免在PyODPS任务中编写过多的Python数据处理代码是明智的选择。
其次,建议用户不要在PyODPS节点中直接下载大量数据并在DataWorks中进行处理。相反,推荐的做法是将数据处理任务提交到MaxCompute进行分布式执行处理,这样不仅可以有效处理大规模数据,而且可以更好地利用MaxCompute的强大计算能力。
此外,为了提升代码开发和调试的效率,建议用户在本地安装IDE进行代码开发,而不是在DataWorks上编写代码并进行调试。尽管DataWorks提供了PyODPS 3节点,允许用户直接编辑Python代码,用于周期性调度MaxCompute SQL任务,但在本地环境中进行开发和调试仍然是一个更佳的选择。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。