Dataphin仅支持开发基于Python的脚本,不支持开发依赖第三方组件的脚本。开发基于第三方组件的脚本,需要通过pip install下载第三方组件。本文为您介绍基于Dataphin如何通过构建Shell任务调用Python读取第三方文件。

前提条件

  • 添加访问地址mirrors.aliyun.com和端口*至项目空间的沙箱白名单,详情请参见设置白名单
  • 已准备Python支持读取的文件,例如TXT、CSV、XLS、XLSX或PDF等格式文件。

步骤一:上传文件

  1. 登录Dataphin控制台
  2. 在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>
  3. 进入资源管理页面。
    1. 在Dataphin首页,单击研发
    2. 在数据开发页面,单击数据处理
    3. 在左侧导航栏,单击资源管理资源管理图标。
  4. 资源管理页面,单击资源管理后的图标。
  5. 新建资源对话框中,配置参数。
    rea
    参数 描述
    类型 选择others
    名称 上传文件的名称需要以文件类型结尾。例如test.xlsx
    描述 填写资源的描述。
    上传文件 选择本地的文件,例如test.xlsx
    计算类型 选择无归属引擎
    注意 文件资源存储至Dataphin系统,因此仅支持选择无归属引擎
    选择目录 默认为资源管理
  6. 单击提交,完成资源的提交。
  7. 提交备注对话框,填写备注信息。
  8. 单击确定并提交

步骤二:创建Shell任务

  1. 数据处理页签,单击左侧导航栏agaga计算任务图标。
  2. 计算任务页面,单击计算任务后的图标,选择通用脚本 > SHELL
  3. 编写DataX任务代码。
    1. 新建文件对话框,配置参数。
      test
      参数 描述
      名称 填写计算任务的名称,例如Python读取文件。
      调度类型 选择任务的调度类型为周期性节点
      描述 填写对任务的简单描述。
      选择目录 系统自动选择为代码管理
    2. 单击确定

步骤三:编写并运行Shell任务代码

  1. 在代码编写页面,编写代码。
    #在Dataphin的Linux服务器上新建目录。
    mkdir -p /tmp/chars/ && \
           
    #指定目录/tmp/chars/为python源。
    pip install -i https://mirrors.aliyun.com/pypi/simple/ \
    --target=/tmp/chars/ \
    openpyxl
    
    #指定的python源写入至openfile.py。
    cat >openfile.py <<EOF
    
    @resource_reference{"test.xlsx"}
    # -*- coding:utf-*-
    import os
    import sys
    sys.path.append('/tmp/chars/')
    import openpyxl
    print '========= python execute ok =========='
    print("start===============")
    args = sys.argv
    # 打开excel文件,获取sheet名
    wb = openpyxl.load_workbook(args[1])
    #  wb.get_sheet_names 这个方法已过时 会有一个警告
    print(wb.worksheets[0])
    
    EOF
    #python中调用文件。
    python openfile.py test.xlsx
    其中,test.xlsx参数需要替换为您已上传的文件。
  2. 单击页面右上角的执行,即可运行任务代码。
    运行结果的状态为SUCCESS,表示读取文件成功。test