本文为您介绍如何在PyODPS中查看一级分区。

前提条件

请提前开通MaxCompute和DataWorks服务,并在DataWorks完成业务流程的创建。本例使用DataWorks简单模式。

操作步骤

  1. 准备测试数据。
    1. 登录Dataworks控制台,以DDL模式创建分区表user_detail。

      代码如下。
      create table if not exists user_detail
      (
      userid    BIGINT comment '用户id',
      job       STRING comment '工作类型',
      education STRING comment '教育程度'
      ) comment '用户信息表'
      partitioned by (dt STRING comment '日期',region STRING comment '地区');
    2. 将以下测试数据保存为user_detail.txt文件。
      0001,互联网,本科,20190715,beijing
      0002,教育,大专,20190716,beijing
      0003,金融,硕士,20190715,shandong
      0004,互联网,硕士,20190715,beijing
    3. user_detail.txt中的数据导入到表user_detail。
      数据导入
  2. 业务流程 > 数据开发中,新建PyODPS节点,并将节点命名为查看一级分区。

    代码如下。
    import sys
    reload(sys)
    #修改系统默认编码。
    sys.setdefaultencoding('utf8')
    
    #异步方式读取一级分区。
    instance = o.run_sql('select * from user_detail WHERE dt=\'20190715\'')
    instance.wait_for_success()
    for record in instance.open_reader():
        print record["userid"],record["job"],record["education"]
    
    #同步方式读取一级分区。
    with o.execute_sql('select * from user_detail WHERE dt=\'20190715\'').open_reader() as reader4:
        print reader4.raw
        for record in reader4:
            print record["userid"],record["job"],record["education"]
    
    #使用ODPS的DataFrame获取一级分区。
    pt_df = DataFrame(o.get_table('user_detail').get_partition('dt=20190715'))
    print pt_df.head(10)
  3. 单击运行按钮。

  4. 运行日志中查看运行结果。