开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks把自己写的算法部署到dataworks上运行有什么方案吗?

DataWorks把自己写的算法部署到dataworks上运行有什么方案吗,用python写的,用到了很多很多包,是要一个一个都上传才能用吗?

展开
收起
真的很搞笑 2023-12-24 13:33:12 54 0
3 条回答
写回答
取消 提交回答
  • 在DataWorks上部署自己写的Python算法,可以采用以下几种方案:

    1. 使用MaxCompute的PyODPS SDK
      如果你的算法需要在MaxCompute环境中运行,你可以使用阿里云提供的PyODPS SDK。在这种情况下,你需要将依赖的Python包上传到MaxCompute,并在PyODPS脚本中引用这些包。

      • 将所有依赖的Python包打包成一个.zip文件。
      • 在DataWorks的数据开发项目中,创建一个新的资源并上传这个.zip文件。
      • 在编写PyODPS脚本时,使用add_file方法将.zip文件添加为资源,并使用importzip命令来导入包。

      示例代码:

      from odps import ODPS
      from odps.distcache import get_cache
      
      odps = ODPS('<your-access-id>', '<your-access-key>', '<your-project-name>', endpoint='<your-endpoint>')
      
      # 添加.zip文件作为资源
      odps.delete('my_package.zip', if_exists=True)  # 如果存在同名资源,先删除
      odps.upload_resource('local/path/to/your/package.zip', 'my_package.zip')
      
      with get_cache('my_package.zip') as cache:
          sys.path.append(cache.abspath)
          import your_package  # 导入你的包
      
    2. 使用DataWorks的自定义节点功能
      DataWorks提供了自定义节点的功能,允许用户编写和运行自己的Python脚本。在这种情况下,你需要确保DataWorks环境中已经安装了所有必要的Python包。

      • 如果DataWorks环境中已经预装了所需的Python包,可以直接在自定义节点中编写和运行你的算法。
      • 如果DataWorks环境中没有预装某些包,你可能需要联系DataWorks的管理员或者技术支持,请求他们为你安装所需的包。
    3. 使用虚拟环境(如conda或venv)
      如果你的Python环境依赖复杂,且DataWorks环境中无法直接安装所有包,你可以考虑使用虚拟环境(如conda或venv)来管理你的依赖。

      • 在本地创建一个包含所有依赖的虚拟环境。
      • 将虚拟环境中的site-packages目录打包成.zip文件。
      • 在DataWorks中创建一个新的资源并上传这个.zip文件。
      • 在自定义节点的Python脚本中,解压这个.zip文件并将解压后的路径添加到sys.path中。

    如果你的算法依赖很多包,确实可能需要将这些包一个一个上传并正确配置。但是,通过合理地组织和打包你的依赖,可以简化这个过程。同时,也可以考虑优化你的依赖结构,减少不必要的包或者寻找能够替代多个小包的大包。

    2023-12-29 12:12:43
    赞同 展开评论 打赏
  • 对的 三方包需要安装在独享调度资源组上 涉及引擎计算任务 还需要安装在引擎计算的机器上
    https://help.aliyun.com/zh/dataworks/use-cases/use-a-pyodps-node-to-reference-a-third-party-package?spm=a2c4g.11186623.0.i6 ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-12-25 08:02:27
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在DataWorks上部署您自己写的Python算法,首先需要在DataWorks中创建一个Python脚本,用于实现您的自定义函数。您需要在脚本中定义一个函数,并确保该函数的输入和输出符合DataWorks UDF函数的要求。然后将Python脚本上传到DataWorks的资源库中。您可以在DataWorks控制台的“数据开发”页面中选择“资源管理”,然后点击“新建资源”按钮,选择“Python脚本”类型,填写名称和描述,然后上传您的Python脚本。

    在上传完成后,您可以在DataWorks控制台的“数据开发”页面中选择您的项目,然后点击“函数计算”菜单,进入函数计算页面。点击“新建函数”按钮,填写函数名称、描述、输入输出参数等信息。完成这些步骤后,点击“保存”按钮,然后点击“发布”按钮,将函数发布到生产环境。

    此外,DataWorks还提供了PyODPS节点,您可以在该节点中直接使用Python代码编写MaxCompute作业,并进行作业的周期性调度。这样,您就可以在DataWorks上运行您的Python算法了。

    2023-12-24 20:17:59
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多