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

MaxCompute:PyODPS ノードを使用してパラメーターを渡す

最終更新日:Jul 09, 2025

このトピックでは、DataWorks で PyODPS ノードを使用してパラメーターを渡す方法について説明します。

前提条件

手順

説明

この例では、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,Internet,Bachelor,20190715,beijing
        0002,Education,junior college,20190716,beijing
        0003,Finance,master,20190715,shandong
        0004,Internet,master,20190715,beijing
    2. ソースデータテーブル user_detail_ods からパーティションテーブル user_detail にデータを書き込みます。

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

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

      3. ターゲットワークスペースを見つけ、[アクション] 列でショートカット > Data Studioを選択します。

      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 を使用してパラメーターを渡します。

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

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

    3. ターゲットワークスペースを見つけ、ショートカット > データ開発[アクション] 列で を選択します。

    4. [データ開発] ページで、作成したビジネスフローを右クリックし、[ノードの作成] > [pyodps 2] を選択します。

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

    6. PyODPS 2 ノードに次のコードを入力して、パラメーターを渡します。

      import sys
      reload(sys)
      print('dt=' + args['dt'])
      # デフォルトのエンコード形式を UTF-8 に変更します。
      sys.setdefaultencoding('utf8')
      # user_detail テーブルを取得します。
      t = o.get_table('user_detail')
      # 渡されたパーティションフィールドを受け取ります。
      with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1:
          count = reader1.count
      print("パーティションテーブルのデータのクエリ:")
      for record in reader1:
          print record[0],record[1],record[2]
    7. [パラメーター付きで実行] をクリックします。

    8. [パラメーター] ダイアログボックスで、パラメーターを設定し、[実行] をクリックします。

      次のパラメーターを設定します。

      • [リソースグループ名]: [デフォルトリソースグループ] を選択します。

      • dt: dt=20190715 に設定します。

      image

    9. [操作ログ] で操作結果を表示します。运行日志