すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:PyODPSノードを使用して、指定されたテーブルのレベル1パーティションからデータを読み取る

最終更新日:Nov 10, 2025

このトピックでは、PyODPSノードを使用して、指定されたテーブルのレベル1パーティションからデータを読み取る方法について説明します。

前提条件

次の前提条件が満たされていることを確認します。

手順

説明

この例では、DataWorksの基本モードを使用します。 ワークスペースを作成するとき、デフォルトでData Studioのパブリックプレビューに参加は有効になっていません。この例は、Data Studioパブリックプレビューに参加しているワークスペースには適用されません。

  1. テストデータを準備します。

    1. テーブルを作成してデータをアップロードします。 詳細については、「テーブルの作成とデータのアップロード」をご参照ください。

      この例では、次のテーブル作成ステートメントとソースデータを使用します。

      • 次のステートメントは、パーティション分割テーブルuser_detailを作成します。

        CREATE TABLE IF NOT EXISTS user_detail
        (
        userid    BIGINT COMMENT 'User ID',
        job       STRING COMMENT 'Job type',
        education STRING COMMENT 'Education level'
        ) COMMENT 'User information table'
        PARTITIONED BY (dt STRING COMMENT 'Date',region STRING COMMENT 'Region');
      • 次の文は、ソースデータテーブルuser_detail_odsを作成します。

        CREATE TABLE IF NOT EXISTS user_detail_ods
        (
          userid    BIGINT COMMENT 'User ID',
          job       STRING COMMENT 'Job type',
          education STRING COMMENT 'Education level',
          dt STRING COMMENT 'Date',
          region STRING COMMENT 'Region'
        );
      • テストデータをuser_detail.txtファイルとして保存します。 このファイルをuser_detail_odsテーブルにアップロードします。

        0001,互联网,Bachelor,20190715,beijing
        0002,education,junior college,20190716,beijing
        0003,finance,master,20190715,shandong
        0004,互联网,master,20190715,beijing
    2. ソースデータテーブルuser_detail_odsからパーティションテーブルuser_detailにデータを書き込みます。

      1. DataWorks コンソールにログインします。

      2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。

      3. ターゲットワークスペースを確認します。 [操作] 列で、[クイック入力] > [データ開発] を選択します。

      4. ビジネスフローを右クリックし、[ノードの作成] > [ODPS SQL] を選択します。

      5. ノード名を入力し、[確認] をクリックします。

      6. ODPS SQLノードに次のコードを入力します。

        INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) 
        SELECT userid, job, education, dt, region FROM user_detail_ods;
      7. [実行] をクリックしてデータの書き込みを完了します。

  2. PyODPSノードを使用して、user_detailテーブルのレベル1パーティションからデータを読み取ります。

    1. にログインします。DataWorksコンソール.

    2. 左側のナビゲーションウィンドウで、ワークスペース.

    3. ターゲットワークスペースを確認します。 [操作] 列で、[クイック入力] > [データ開発] を選択します。

    4. On theデータ开発ページで、作成したビジネスフローを右クリックし、ノードの作成 > PyODPS 2.

    5. ノード名を入力し、確認.

    6. PyODPS 2ノードの構成タブで、コードエディターに次のコードを入力します。

      import sys
      reload(sys)
      # Set UTF-8 as the default encoding format.
      sys.setdefaultencoding('utf8')
      
      # Read data from the level-1 partition in asynchronous mode.
      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"]
      
      # Read data from the level-1 partition in synchronous mode.
      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"]
      
      # Use the PyODPS DataFrame to read data from the level-1 partition.
      pt_df = DataFrame(o.get_table('user_detail').get_partition('dt=20190715'))
      print pt_df.head(10)
    7. ツールバーの [実行] アイコンをクリックします。

    8. PyODPS 2ノードの実行結果をログの実行タブをクリックします。