详情页标题前

阿里云云原生大数据计算服务 MaxCompute资源-云淘科技

详情页1

PyODPS主要支持两种资源类型,即文件和表。本文为您介绍PyODPS中资源的常见操作。

基本操作

  • list_resources():列出该项目空间下的所有资源。
  • exist_resource():判断资源是否存在。
  • delete_resource():删除资源。也可以通过Resource对象调用drop方法实现。
  • create_resource():创建资源。
  • open_resource():读取资源。

文件资源

文件资源包括基础的File类型,以及Py、Jar、Archive类型。

  • 创建文件资源

    创建文件资源可以通过给定资源名、文件类型和一个file-like的对象(或字符串对象)调用create_resource()来创建。

    # 使用file-like的对象创建文件资源,注意压缩包等文件需要用二进制模式读取
    resource = o.create_resource('test_file_resource', 'file', file_obj=open('/to/path/file', 'rb'))
    # 使用字符串创建文件资源
    resource = o.create_resource('test_py_resource', 'py', file_obj='import this')
  • 读取和修改文件资源 打开一个资源有如下两种方法:
    • 对文件资源调用open方法。
    • 在ODPS入口调用open_resource()方法。

    打开后的对象是file-like的对象。 类似于Python内置的open()方法,文件资源也支持打开的模式,示例如下。

    with resource.open('r') as fp:  # 以读模式打开资源。
        content = fp.read()  # 读取全部的内容。
        fp.seek(0)  # 回到资源开头。
        lines = fp.readlines()  # 读成多行。
        fp.write('Hello World')  # 报错,读模式下无法写资源。
    
    with o.open_resource('test_file_resource', mode='r+') as fp:  # 读写模式打开资源。
        fp.read()
        fp.tell()  # 定位当前位置。
        fp.seek(10)
        fp.truncate()  # 截断后面的内容。
        fp.writelines(['Hello
    ', 'World
    '])  # 写入多行。
        fp.write('Hello World')
        fp.flush()  # 手动调用会将更新提交到ODPS。

    所有支持的打开类型包括:

    • r:读模式,只能打开不能写。
    • w:写模式,只能写入而不能读文件,注意用写模式打开,文件内容会先被清空。
    • a:追加模式,只能写入内容到文件末尾。
    • r+:读写模式,可以任意读写内容。
    • w+:类似于r+,但会先清空文件内容。
    • a+:类似于r+,但写入时只能写入文件末尾。

    同时,PyODPS中文件资源支持以二进制模式打开,例如一些压缩文件需要以这种模式打开。

    • rb:指以二进制读模式打开文件。
    • r+b:指以二进制读写模式打开。

表资源

  • 创建表资源
    o.create_resource('test_table_resource', 'table', table_name='my_table', partition='pt=test')
  • 更新表资源
    table_resource = o.get_resource('test_table_resource')
    table_resource.update(partition='pt=test2', project_name='my_project2')
  • 获取表及分区
    table_resource = o.get_resource('test_table_resource')
    table = table_resource.table
    print(table.name)
    partition = table_resource.partition
    print(partition.spec)
  • 读写内容
    table_resource = o.get_resource('test_table_resource')
    with table_resource.open_writer() as writer:
        writer.write([0, 'aaaa'])
        writer.write([1, 'bbbbb'])
    
    with table_resource.open_reader() as reader:
        for rec in reader:
            print(rec)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/159433.html

(0)
上一篇 2023年12月10日 上午1:43
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS查看资源概览大盘-云淘科技

    资源概览大盘展示您的块存储资源的使用情况,便于您管理审计块存储资源。 前提条件 已开启秒级监控数据的采集功能。具体操作,请参见开启数据采集功能。 功能入口 登录日志服务控制台。 在日志应用区域,单击CloudLens for EBS。 在左侧导航栏中,单击资源概览。 数据详情 您可以在资源概览页面,查看块存储资源的使用情况。 图标名称 说明 云盘总数量 展示…

    2023年12月10日
  • 阿里云负载均衡ListServerGroupServers – 查询服务器-云淘科技

    查询服务器组中的服务器。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下: 操作:是指具…

    阿里云负载均衡 2023年12月10日
  • 阿里云负载均衡DisableLoadBalancerIpv6Internet – 关闭NLB实例IPv6公网-云淘科技

    将双栈NLB实例的Pv6地址从公网变更为私网。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说…

    阿里云负载均衡 2023年12月10日
  • 阿里云人工智能平台PAI典型场景:基于灵骏智算资源的数据集加速-云淘科技

    阿里云PAI为您提供了数据集加速器(DatasetAccelerator,简称DatasetAcc),在准备数据集时支持开启数据集加速功能,后续提交训练任务(DLC)时可直接使用已开启加速的数据集,提升数据读取效率。本文为您介绍基于灵骏智算资源场景下的数据集加速使用主要流程与注意事项。 支持的数据集类型 使用灵骏智算资源时,当前仅OSS类型的数据集支持加速,…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云云原生大数据计算服务 MaxCompute使用说明-云淘科技

    本文为您介绍如何运行MaxCompute Graph作业。 运行作业 MaxCompute客户端提供一个JAR命令用于运行MaxCompute Graph作业,其使用方式与MapReduce中的JAR命令相同。 使用语法如下。 Usage: jar [] [ARGS] -conf Specify an application configuration fi…

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。