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

MaxCompute:はじめに

最終更新日:May 24, 2025

PyODPS は、DataWorks などのデータ開発プラットフォームでデータ開発ノードとして呼び出すことができます。これらのプラットフォームは、PyODPS を実行するための環境を提供し、ノードのスケジュールと実行を可能にします。 MaxCompute エントリオブジェクトを手動で作成する必要はありません。 pandas と同様に、PyODPS は高速で柔軟性があり、表現力豊かなデータ構造を提供します。 PyODPS のデータ処理機能は pandas のデータ処理機能に似ています。 PyODPS が提供する DataFrame API を呼び出すことで、PyODPS のデータ処理機能を使用できます。このトピックでは、DataWorks コンソールでプロジェクトに PyODPS を使用する方法について説明します。

前提条件

手順

  1. PyODPS ノードを作成します。

    このセクションでは、DataWorks コンソールで PyODPS 3 ノードを作成する方法について説明します。詳細については、「PyODPS 3 タスクを開発する」をご参照ください。

    説明
    • PyODPS 3 ノードを例として使用します。 PyODPS 3 ノードの Python バージョンは 3.7 です。

    • 各 PyODPS ノードは最大 50 MB のデータを処理でき、最大 1 GB のメモリを占有できます。それ以外の場合、DataWorks は PyODPS ノードを終了します。 PyODPS ノードで大量のデータを処理する Python コードを記述しないことをお勧めします。

    • DataWorks でコードを記述およびデバッグするのは非効率的です。コードを記述するために、ローカルに IntelliJ IDEA をインストールすることをお勧めします。

    1. ワークフローを作成します。

      DataWorks コンソールにログインし、DataStudio ページに移動します。ページの左側で、[ビジネスフロー] を右クリックし、[ワークフローの作成] をクリックします。

    2. PyODPS 3 ノードを作成します。

      作成したワークフローを見つけ、ワークフローの名前を右クリックして、[作成] > [MaxCompute] > [PyODPS 3] を選択します。 [ノードの作成] ダイアログボックスで、[ノード名] を指定し、[コミット] をクリックします。

  2. PyODPS 3 ノードを設定して実行します。

    1. PyODPS 3 ノードのコードを記述します。

      PyODPS 3 ノードのコードエディタにテストコードを記述します。この例では、テーブル操作の全範囲を含む次のコードをコードエディタに記述します。テーブル操作と SQL 操作の詳細については、「テーブル」および「SQL」をご参照ください。

      from odps import ODPS
      
      # my_new_table という名前の非パーティションテーブルを作成します。非パーティションテーブルには、指定されたデータ型のフィールドと指定された名前のフィールドが含まれています。
      # DataWorks の各 PyODPS ノードには、MaxCompute エントリであるグローバル変数 odps または o が含まれています。エントリを定義せずに使用できます。詳細については、「DataWorks で PyODPS を使用する」を参照してください。
      table = o.create_table('my_new_table', 'num bigint, id string', if_not_exists=True)
      
      # my_new_table テーブルにデータを書き込みます。
      records = [[111, 'aaa'],
                [222, 'bbb'],
                [333, 'ccc'],
                [444, 'Chinese']]
      o.write_table(table, records)
      
      # my_new_table テーブルからデータを読み取ります。
      for record in o.read_table(table):
          print(record[0],record[1])
      
      # SQL ステートメントを実行して、my_new_table テーブルからデータを読み取ります。
      result = o.execute_sql('select * from my_new_table;',hints={'odps.sql.allow.fullscan': 'true'})
      
      # SQL ステートメントの実行結果を取得します。
      with result.open_reader() as reader:    
          for record in reader:            
              print(record[0],record[1])
      
      # テーブルを削除します。
      table.drop()
    2. コードを実行します。

      コードを記述した後、上部のツールバーにある 运行 アイコンをクリックします。コードが実行された後、[ランタイムログ] タブで PyODPS 3 ノードの実行結果を表示できます。次の図の結果は、コードが正常に実行されたことを示しています。image.png