You need to enable JavaScript to run this app.
导航
Python 任务使用第三方依赖包
最近更新时间:2024.11.29 15:55:15首次发布时间:2024.11.29 15:55:15

DataLeap Python 任务可根据您实际业务场景,在任务中按需使用第三方依赖包,以满足复杂的业务场景。
本文将为您介绍 Python 任务如何使用第三方依赖包。

1 使用前提

已开通 DataLeap 服务。

说明

若仅开通 Dataleap大数据集成服务,不支持创建 Python 任务。

2 新建 Python 任务

  1. 登录 DataLeap租户控制台
  2. 概览界面,显示加入的项目中,点击数据开发进入对应项目。
  3. 任务开发界面,左侧导航栏中,点击新建任务按钮,进入新建任务页面。
  4. 选择任务类型:
    1. 分类:数据开发。
    2. 绑定引擎:通用。
    3. 选择任务:离线数据 Python
  5. 填写任务基本信息:
    1. 任务名称:输入任务的名称,只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且在127个字符以内。
    2. 保存至:选择任务存放的目标文件夹目录。
  6. 点击确认按钮,成功创建任务。
    Image

3 任务编辑

Python 任务创建完成后,便可开始 Python 任务编辑。下方通过两种场景,您可根据实际情况进行任务配置。

3.1 外网形式访问并安装包

当前资源可通过外网形式访问时,推荐指定外网 pip 源来安装,可在 Python 任务中,执行以下脚本:

import os
os.system('pip install numpy(替换所需的第三方包名称) -i https://pypi.tuna.tsinghua.edu.cn/simple')
os.system('pip list')

上述示例执行后,您便可在下方执行日志中,查看当前环境中安装的所有包信息。
Image

3.2 无法访问外网

当前资源无法访问外网时,您也可以通过上传依赖资源包,并通过 Python 任务引用的方式,来实现使用第三方依赖包的场景。

3.2.1 下载依赖包到本地

您可在有 Python 环境的客户端或 PyCharm 等工具中,下载任务所需的依赖包。此示例中以 HDFS 依赖包为例:

  1. 通过 pip download 命令生成所需的依赖包:

    mkdir hdfs
    pip download hdfs -d hdfs
    
  2. 将下载下来的包压缩并上传:

    zip  -r hdfs.zip hdfs
    

3.2.2 上传资源

在 DataLeap 平台中上传 hdfs.zip 压缩包:

  1. 登录DataLeap租户控制台
  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。
  3. 在左侧导航栏单击资源库进入。
    Image
  4. 在资源库界面,下拉选择通用资源类型(上方图中第”2“步),然后通过两个新建资源入口(上方图中第”3“步),进行通用资源类型创建。
  5. 在资源创建界面,依次完成资源关联信息基本信息配置,其中在 基本信息 > 资源文件处,单击”点击上传“按钮,将本地准备好的资源包上传到平台。
  6. 单击确定按钮,便可完成资源上传。

Image
更多资源上传操作详见资源库

3.2.3 Python 任务中使用依赖包

  1. 打开 Python 任务编辑界面;

  2. 在编辑界面右侧单击执行设置窗口进入,并进行资源选择;
    Image

  3. 在执行设置窗口中,下拉资源选择栏,勾选已添加的依赖包文件,并完成其余计算资源组、资源配置等信息。
    更多执行设置详见3.2.5 执行设置
    Image

  4. 资源选择完成后,便可在 Python 编辑界面,进行相应任务开发,示例如下:

    注意

    Python 任务在脚本中访问公网或指定私有网络(VPC)访问时,您需通过下方的网络配置(可选),选择能与您资源互通的私有网络、子网、安全组信息。
    Image
    亦或是您也可通过使用独享计算资源组来实现网络互通,可将独享计算资源组所在的 VPC 开通公网,或是和您资源所在的 VPC 通过 CEN 做网络打通工作。
    Image

    import os
    #安装上传资源包中 hdfs 目录下的依赖包信息:
    os.listdir('.')
    os.system('pip install --no-index --find-links=hdfs hdfs')
    #使用安装好的第三方依赖包: 
    from hdfs import InsecureClient
    from docopt import docopt
    #验证 docpot 的能力
    doc = """
    Usage:
      test.py [--name=<name>]
    
    Options:
      --name=<name>  Name to print [default: World].
    """
    
    # 模拟命令行参数
    arguments = docopt(doc, argv=['--name=HDFS'])
    print(f"Hello, {arguments['--name']}!")  
    
    # 验证 hdfs 的能力
    # 假设有一个 HDFS 服务正在运行,替换为你的 HDFS 地址
    hdfs_url = 'http://localhost:50070'  # HDFS 的地址
    client = InsecureClient(hdfs_url, user='your-username')  # 替换为你的用户名
    
    # 测试列出 HDFS 根目录
    try:
        print("Listing HDFS root directory...")
        files = client.list('/')
        print("Files in HDFS root directory:", files)
    except Exception as e:
        print("Failed to connect to HDFS:", e)
    
  5. 测试脚本编辑完成后,依次单击编辑器上方的保存、调试按钮,等待脚本执行完成。

  6. 脚本执行完成后,可在下方日志信息中,查看最终的执行结果。
    Image