阿里云DataWorks-部署自定义python项目问题

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
简介: 阿里云DataWorks-多种方式部署自定义python项目并进行调度

1. 问题描述

如下图所示项目结构,项目下存在main.py主文件,有自定义的python package(config以及utils两个module),希望能在dataworks上部署并调度、运行起来。

image.png image.png

2. 解决方案

2.1. 方案1

参考dataworks官方文档:

https://help.aliyun.com/zh/dataworks/use-cases/use-a-pyodps-node-to-reference-a-third-party-package?spm=a2c4g.11186623.0.i19#section-zvo-alt-b9q

如上图所示project结构,将time_config.py,local_vars.py通过【资源->新建资源->python】创建资源 image.png

将项目中的main.py的主文件,创建pyodps3的节点,并将代码复制进去,使用

##@resource_reference{"local_vars.py"}
sys.path.append(os.path.dirname(os.path.abspath('local_vars.py'))) #引入资源至工作空间。
# from utils.local_vars import ali_name
# 修改引用代码 如下
from local_vars import ali_name

的方式引用该python脚本并添加到sys path中确保可以后续进行import

image.png

2.2. 方案2

直接将project通过zip打包,通过【资源->新建资源->archive】 上传zip资源并提交到生产环境,这时候dataworks也会将这个zip包传到对应的odps的项目。

dataworks界面:

image.png

odps界面看下resource:

image.png

代码:需要把项目中的main方法复制出来,创建一个pyodps3的节点,并做一些代码改造,详细的看下面这段代码的注释

'''PyODPS 3
请确保不要使用从 MaxCompute下载数据来处理。下载数据操作常包括Table/Instance的open_reader以及 DataFrame的to_pandas方法。 
推荐使用 PyODPS DataFrame(从 MaxCompute 表创建)和MaxCompute SQL来处理数据。
更详细的内容可以参考:https://help.aliyun.com/document_detail/90481.html
'''
# This is a sample Python script.
# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
# 这里要引入odps,从odps读这个archive的zip包,即自己写的package
from odps import ODPS
o = ODPS('ak','sk','<project_name>')
# 这里通过get resource方法读到这个zip包
r = o.get_resource("dataworks_test01.zip")
import sys, zipfile
from odps.lib.importer import CompressImporter
# append到sys path中
sys.meta_path.append(CompressImporter(zipfile.ZipFile(r.open("rb"))))
# 这会引用的代码不需要方案1中的修改,zip文件解压后会保留这个文件的层级
from utils.local_vars import ali_name
from config.time_config import time_zone
def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press ⌘F8 to toggle the breakpoint.
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi(ali_name + 'time zone is ' + time_zone)
# See PyCharm help at https://www.jetbrains.com/help/pycharm/

执行成功的结果见dataworks的那个页面。

2.3. 方案3

这个方案仅在打包的时候有所不同,如果客户除了自定义的package还借助了开源的package需要打包到zip里,可以参考下:https://pyodps.readthedocs.io/zh-cn/stable/pyodps-pack.html 用toml的方式指定,不过强烈建议客户使用独享资源组的运维助手通过pip直接安装开源包到资源组上。

除打包外其他操作过程同方案2

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
4天前
|
弹性计算 数据库 数据安全/隐私保护
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
在阿里云ECS(2核2G,SSD40G,3M带宽)上,安装Ubuntu 22.04,然后配置Docker和FTP。创建 `/config` 和 `/books` 目录,设置权限,开放端口,拉取 `johngong/calibre-web` Docker镜像,以`calibre-web`命名容器,映射端口,配置环境变量,挂载卷,确保重启策略。本地安装Calibre客户端,上传metadata.db到服务器。在Calibre-web服务端配置数据库,启用上传权限,修改管理员账户信息。完成配置后,开始上传电子书并进行阅读。
73 2
阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署
|
7天前
|
SQL 运维 DataWorks
DataWorks产品使用合集之数据源配置如何进行跨项目克隆
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7天前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7天前
|
资源调度 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python UDF(User-Defined Function)来引用第三方模块
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5天前
|
分布式计算 运维 DataWorks
MaxCompute操作报错合集之用户已在DataWorks项目中,并有项目的开发和运维权限,下载数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
6天前
|
弹性计算 持续交付 Docker
阿里云云效产品使用合集之如何部署到阿里云服务器上的 Windows Server 上的 IIS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
7天前
|
数据采集 运维 DataWorks
DataWorks产品使用合集之跨项目克隆时,如何迁移表结构
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6天前
|
存储 缓存 运维
阿里云云效操作报错合集之流水线在部署到函数计算时,出现报错:"ConcurrentUpdateError",该如何处理
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何查询MaxCompute项目中的所有表及其字段信息
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之重新上传后只有SQL无法运行,而Python可以正常运行,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

热门文章

最新文章

相关产品

  • 大数据开发治理平台 DataWorks