PyODPS如何确定运行在服务端还是客户端

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本文主要讲解编写PyODPS代码时如何确定运行在服务端还是客户端

一、背景

PyODPS是MaxCompute的Python版本的SDK,提供简单方便的Python编程接口,对于不熟悉sql的开发工程师可以使用PyODPS。在使用 PyODPS会看到有一些对内存和数据大小的限制,但这些并非是PyODPS的限制,本质是对客户端DataWorks PyODPS节点的限制,PyODPS对数据的大小是没有限制的。很多人无法确定到底是运行在服务端还是客户端,本文介绍当出现相关问题时,如何确定代码在何处执行。

二、如何判断客户端和服务端

判断是否运行在服务端的标准,代码是否可以编译成sql运行。如:PyODPS DataFrame的内置算子,最终是编译成sql跑的。如果想使用自己的逻辑处理数据可以自定义函数。在DataWorks上新建PyODPS节点,相当于运行了一台服务器用于跑PyODPS脚本本质也是一个客户端。

发生在客户端的行为:

1.PyODPS DataFrame转化成Pandas的DataFrame

2.sql执行发生在服务端,将结果进行遍历发生在客户端。如;

result = o.execute_sql('select * from my_new_table;',hints={'odps.sql.allow.fullscan': 'true'})
with result.open_reader() as reader:    
    for record in reader:            
        print record[0],record[1]

发生在服务端的行为:

1.执行sql如

result = o.execute_sql('select * from my_new_table;',hints={'odps.sql.allow.fullscan': 'true'})

2.转化成PyODPS的DataFrame使用PyODPS DataFrame的算子, PyODPS DataFrame做运算的算子都是运行在服务端

除了head(),tail()这些查看结果的行为是运行在服务端

3.DataFrame使用自定义函数处理数据,处理单列数据可以用map函数,处理一行数据可以使用apply函数

具体可以参考官网自定义函数案例

三、客户端和服务端如何使用第三方包

DataWorks PyODPS客户端使用第三方包:

客户端使用第三方包都是运行在节点上的可以对数据量小的结果集处理,比如发送邮件

  • 必须使用独享调度资源组,详情请参见新增独享调度资源组
  • 在独享调度资源组的运维助手中安装需要的三方包,详情请参见运维助手。PyODPS节点分为PyODPS 2和PyODPS 3:
  • 如果依赖PyODPS 2节点,请执行如下命令。
pip install <需要安装的包> -i  https://pypi.tuna.tsinghua.edu.cn/simple
  • 执行命令后,如果提示需要升级PIP版本,请执行如下命令。
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 如果依赖PyODPS 3节点,请执行如下命令。
/home/tops/bin/pip3 install <需要安装的包> -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 执行命令后,如果提示需要升级PIP版本,请执行如下命令。
/home/tops/bin/pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

服务端使用第三方包:

可以处理大量数据无限制

参考MaxCompute官网第三方包案例




大家如果对MaxCompute有更多咨询或者建议,欢迎扫码加入 MaxCompute开发者社区钉钉群,或点击链接 申请加入。



image.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
5月前
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之赋值节点output是有数据的,引用参数运行打印时是空的,该如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
38 4
|
3月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之运维中心中的运行日志可以保留多久
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之怎么把开发环境的任务调度运行到生产环境
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之如何通过API终止运行的流程
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
SQL DataWorks 安全
DataWorks产品使用合集之如何实现在参数里面配置获取运行的时间
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之运行MR任务读取源表数据并写入新表的过程,有哪些限制
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之依赖脚本实际运行成功了,但其状态却显示为未运行,从而导致下游脚本没有运行,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之输入时提示有GROUP_CONCAT方法,但在运行时报错,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之重新上传后只有SQL无法运行,而Python可以正常运行,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
SQL DataWorks Java
DataWorks操作报错合集之在本地任务和冒烟测试中可以正常运行,但在调度任务中报错,是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

相关实验场景

更多