在DataWorks上使用PyODPS使用限制是什么?[阿里云DataWorks]

在DataWorks上使用PyODPS使用限制是什么?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在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。

  2. 在 DataWorks 上使用 PyODPS 进行 MaxCompute 任务开发和调度是非常常见的一种方法,但是也有一些使用限制需要注意:
    安装依赖库:在使用 PyODPS 时,需要安装相应的依赖库,如 requests、six、pytz 等,需要确保这些依赖库与 DataWorks 环境兼容。在 DataWorks 中,可以使用 Python 依赖包管理功能来安装和管理依赖库。
    存在调度并发数限制:在 DataWorks 中,同一个项目下的任务并发数是有限制的,如果任务数量过多或者任务执行时间过长,可能会导致任务等待或者执行失败。因此,建议您在任务设计时考虑任务并发数、任务执行时间等因素,以避免任务并发数过多或者任务执行时间过长的问题。

  3. 在DataWorks上使用PyODPS,存在一些特定的使用限制。首先,对于PyODPS节点,获取本地处理的数据的大小不能超过50 MB,节点运行时占用的内存也不能超过1 GB,否则节点任务可能会被系统中止。因此,为了确保任务的顺利进行,避免在PyODPS任务中编写过多的Python数据处理代码是明智的选择。

    其次,建议用户不要在PyODPS节点中直接下载大量数据并在DataWorks中进行处理。相反,推荐的做法是将数据处理任务提交到MaxCompute进行分布式执行处理,这样不仅可以有效处理大规模数据,而且可以更好地利用MaxCompute的强大计算能力。

    此外,为了提升代码开发和调试的效率,建议用户在本地安装IDE进行代码开发,而不是在DataWorks上编写代码并进行调试。尽管DataWorks提供了PyODPS 3节点,允许用户直接编辑Python代码,用于周期性调度MaxCompute SQL任务,但在本地环境中进行开发和调试仍然是一个更佳的选择。