Shell类型节点运行Python脚本

DataWorks的Shell类型节点支持运行Python脚本。本文将为您介绍如何使用通用Shell节点或EMR Shell节点运行Python 2或Python 3脚本。

背景信息

DataWorks支持将Python脚本作为资源上传。您可以在通用Shell节点或EMR Shell节点中指定Python 3或Python 2的执行路径,进而通过引用已上传的资源来运行Python脚本。

前提条件

  • EMR Shell节点使用前提条件,详情请参见EMR Shell节点使用前提条件

  • 通用Shell节点使用前提条件,详情请参见通用Shell节点使用前提条件

  • 在DataWorks资源组本地运行Python脚本时,代码需要调用第三方包,需要根据任务使用的资源组不同,采用不同方式在资源组上准备第三方包环境:

    • Serverless资源组(推荐):通过镜像管理安装第三方包,详情请参见镜像管理

    • 独享调度资源组:通过运维助手安装第三方包,详情请参见运维助手

    说明

    您在创建第三方包时,需选择支持Python 2Python 3的安装包类型。

使用限制

通过Shell类型节点执行Python脚本

DataWorks支持通过通用Shell节点或EMR Shell节点引用资源来执行Python脚本。不同Python版本访问路径不一样,例如:

  • Python 2:python xx.py

  • Python 3:/home/tops/bin/python3 xx.py

下面为您详细介绍两种访问路径的使用方法,您可以根据业务需求选择合适的节点方式来执行Python脚本。

通用Shell节点执行Python脚本

  1. 新建资源。

    1. 进入数据开发页面。

      登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

    2. 新建MaxCompute Python资源。

      在数据开发页面右键单击目标业务流程,选择新建资源,在MaxCompute目录下选择Python资源,输入资源名称mc.py进行创建。

      说明

      mc.py为示例资源名称,您可根据实际业务情况进行调整。

    3. 编辑MaxCompute Python资源。

      进入MaxCompute Python资源节点编辑页面,开发节点代码,示例如下:

      Python 3示例脚本

      print('This is a test text')

      Python 2示例脚本

      print "This is a test text"
    4. 单击保存提交,保存并提交资源。

  2. 引用资源。

    1. 新建通用Shell节点。

      在数据开发页面右键单击目标业务流程,选择新建节点,在通用目录下选择Shell节点进行创建。

    2. 引用资源。

      进入通用Shell节点编辑页面,在MaxCompute > 资源节点下,找到待引用资源mc.py,右键选择引用资源

      通用Shell节点出现以下内容,引用成功。

      image

  3. 结果验证。

    在通用Shell节点中用Python 3执行引用资源

    1. 编辑通用Shell节点。

      在通用Shell节点中添加Python 3命令执行路径。

      ##@resource_reference{"mc.py"}
      /home/tops/bin/python3 mc.py
    2. 点击image,选择资源组与自定义的镜像信息,执行通用Shell节点任务。结果如下:

      image

    在通用Shell节点中用Python 2执行引用资源

    1. 编辑通用Shell节点。

      在通用Shell节点中添加Python 2命令执行路径。

      ##@resource_reference{"mc.py"}
      python mc.py
    2. 点击image,选择资源组与自定义的镜像信息,执行通用Shell节点任务。结果如下:

      image

EMR Shell节点执行Python脚本

  1. 新建资源。

    1. 进入数据开发页面。

      登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

    2. 新建EMR File资源。

      在数据开发页面右键单击目标业务流程,选择新建资源,在EMR目录下选择File资源,选择存储路径点击上传本地的emr.py脚本。示例脚本内容如下:

      Python 3示例脚本

      print('This is a test text')

      Python 2示例脚本

      print "This is a test text"
      说明

      emr.py为示例资源名称,您可根据实际业务情况进行调整。

    3. 单击提交提交资源。

  2. 引用资源。

    1. 新建EMR Shell节点。

      在数据开发页面右键单击目标业务流程,选择新建节点,在EMR目录下选择EMR Shell节点进行创建。

    2. 引用EMR File资源。

      进入EMR Shell节点编辑页面,在EMR > 资源节点下,找到待引用资源emr.py,右键选择引用资源

      EMR Shell节点出现以下内容,引用成功。

      image

  3. 结果验证。

    在EMR Shell节点中用Python 3执行引用资源

    1. 编辑EMR Shell节点。

      在EMR Shell节点中添加Python 3命令执行路径/home/tops/bin/python3

      ##@resource_reference{"emr.py"}
      /home/tops/bin/python3 emr.py
    2. 点击image,选择资源组与自定义的镜像信息,执行EMR Shell节点任务。结果如下:

      image

    在EMR Shell节点中用Python 2执行引用资源

    1. 编辑EMR Shell节点。

      在EMR Shell节点中添加Python 2命令执行路径python

      ##@resource_reference{"emr.py"}
      python emr.py
    2. 点击image,选择资源组与自定义的镜像信息,执行EMR Shell节点任务。结果如下:

      image