请问Dataworks中python来源第三方包,怎么上传和引用?

请问Dataworks中python来源第三方包,怎么上传和引用?

展开
收起
真的很搞笑 2023-06-11 10:38:36 272 分享 版权
阿里云 AI 助理回答

在DataWorks中上传和引用Python来源的第三方包,可以通过以下步骤完成。根据不同的使用场景(如普通Python脚本、开源第三方包或UDF函数),具体操作有所不同。以下是详细的步骤说明:


一、上传第三方包

1. 使用代码上传资源

  • 您需要将目标第三方包打包为packages.tar.gz格式,并通过MaxCompute客户端上传。
  • 示例命令:
    add file packages.tar.gz;
    

    注意:确保文件路径和名称正确。

2. 使用DataWorks可视化上传

  • 在DataWorks中,您可以通过以下方式上传第三方包:
    1. 进入数据开发页面。
    2. 单击新建资源 > Archive(支持.zip.tar.gz等压缩格式)。
    3. 上传完成后,勾选上传为ODPS资源以同步至MaxCompute。

二、引用第三方包

1. 在普通Python脚本中引用

  • 如果您的任务依赖普通的Python脚本,可以按照以下步骤操作:

    1. 创建Python资源:
      • 数据开发页面,单击新建资源 > Python
      • 编写并保存Python代码。
    2. 在PyODPS节点中引用:

      • 使用@resource_reference注解引用资源。
      • 示例代码:
      ##@resource_reference{"pyodps_packagetest.py"}
      
      import sys
      import os
      sys.path.append(os.path.dirname(os.path.abspath('pyodps_packagetest.py')))
      import pyodps_packagetest
      pyodps_packagetest.printname()
      

      注意:确保资源名与实际文件名一致(去掉.py后缀)。

2. 在开源第三方包中引用

  • 根据使用的资源组类型,选择不同的配置方式:
    • Serverless资源组(通用型资源组)
    • 创建自定义镜像:
      • 在镜像管理页面,选择所需的第三方包进行安装。
      • 关键参数:
        • 镜像名称/IDdataworks_pyodps_task_pod
        • 支持任务类型PyODPS2PyODPS3
        • 安装包:按需选择Python2、Python3或其他依赖。
    • 在调度配置中使用该镜像运行任务。
    • 独享调度资源组(不推荐):
    • 登录DataWorks实例列表页,进入工作空间详情页。
    • 找到绑定的独享调度资源组,进入运维助手
    • 创建安装命令:
      • 快捷方式:选择内置第三方包(如NumPyPandas)。
      • 手动输入:执行Shell命令安装(如pip install)。
    • 安装完成后,在PyODPS节点中通过import语句引用包。

3. 在Python UDF中引用

  • 如果需要在MaxCompute的Python UDF中引用第三方包,需按照以下步骤操作:

    1. 下载并编译第三方包:
      • 对于Numpy等常用包,直接下载对应版本的WHEEL文件(如numpy-1.19.2-cp37-cp37m-manylinux1_x86_64.whl)。
      • 对于需要编译的包,使用Linux环境或Docker容器编译生成WHEEL包。
    2. 修改包后缀格式为.zip,并通过MaxCompute客户端上传:
      add archive numpy-1.19.2-cp37-cp37m-manylinux1_x86_64.zip;
      
    3. 注册函数时,添加相关资源(如.zip文件)。
    4. 在UDF代码中引用:

      from odps.udf import annotate
      import numpy as np
      
      @annotate("->string")
      def evaluate():
       return str(np.array([1, 2, 3]))
      

      注意:确保动态链接库(如.so文件)也一并上传并注册。


三、重要注意事项

  • 资源组类型:请确认当前工作空间绑定的资源组类型(通用型或独享调度资源组),以便选择合适的安装方式。
  • 文件大小限制:通过运维助手上传的资源不得超过50MB;超过此限制的资源需通过DataWorks可视化方式上传。
  • 兼容性问题:推荐在Linux环境下编译第三方包,避免Windows环境导致的兼容性问题。
  • 特殊字符处理:如果代码中包含特殊字符(如Pickle文件),建议将代码打包为.zip后再上传并在代码中解压使用。

通过以上步骤,您可以成功上传和引用Python来源的第三方包,满足不同场景下的需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

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

热门讨论

热门文章

还有其他疑问?
咨询AI助理