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

DataWorks:シェルノードでの Python スクリプトの実行

最終更新日:Jul 24, 2026

DataWorks では、シェルノードで Python スクリプトを実行できます。このトピックでは、共通シェルノードと EMR Shell ノードで Python 2 および Python 3 スクリプトを実行する方法について説明します。

背景

DataWorks では、Python スクリプトをリソースとしてアップロードできます。その後、共通シェルノードまたは EMR Shell ノードで Python 2 または Python 3 のインタープリターパスを指定し、アップロードしたリソースを参照してスクリプトを実行できます。

前提条件

  • EMR Shell ノードを使用するための前提条件を満たしていること。詳細については、「EMR Shell ノードを使用するための前提条件」をご参照ください。

  • 共通シェルノードを使用するための前提条件を満たしていること。詳細については、「共通シェルノードを使用するための前提条件」をご参照ください。

  • Python スクリプトでサードパーティパッケージが必要な場合は、リソースグループで環境を準備する必要があります。方法はリソースグループのタイプによって異なります。

    • サーバーレスリソースグループ (推奨):イメージ管理を使用してサードパーティパッケージをインストールします。詳細については、「カスタムイメージ」をご参照ください。

    • 専用スケジューリングリソースグループ:O&M Assistant を使用してサードパーティパッケージをインストールします。詳細については、「O&M Assistant」をご参照ください。

    説明

    サードパーティパッケージを作成する際は、パッケージタイプが Python 2 と Python 3 の両方をサポートしていることを確認してください。

使用制限

シェルノードでの Python スクリプトの実行

DataWorks では、共通シェルノードまたは EMR Shell ノードからリソースを参照して Python スクリプトを実行できます。インタープリターパスは Python のバージョンによって異なります。例:

  • Python 2: python xx.py

  • Python 3: /home/tops/bin/python3 xx.py

共通シェルノード

  1. リソースの作成

    1. DataStudio ページへの移動

      DataWorks コンソールにログインします。対象のリージョンに切り替え、左側メニューで [データモデリングと開発] > データ開発 をクリックします。ドロップダウンリストから対象のワークスペースを選択し、データ開発へ をクリックします。

    2. MaxCompute Python リソースの作成

      DataStudio ページで、対象のワークフローを右クリックし、リソースの作成 を選択します。MaxCompute ディレクトリで、リソースタイプとして Python を選択し、mc.py という名前のリソースを作成します。

      説明

      リソース名 mc.py は一例です。ビジネス要件に基づいて名前を指定できます。

    3. MaxCompute Python リソースの編集

      リソースの設定ページで、コードを編集します。コード例:

      Python 3

      print('This is a test text')

      Python 2

      print "This is a test text"
    4. 保存 と 提交 をクリックして、リソースを保存し、コミットします。

  2. リソースの参照

    1. 共通シェルノードの作成

      DataStudio ページで、対象のワークフローを右クリックし、ノードの作成 を選択します。汎用 ディレクトリで、シェル を選択します。

    2. リソースの参照

      共通シェルノードの編集ページで、MaxCompute > リソース ノード配下で、保留中の リソースのリファレンス mc.py を見つけ、右クリックして リソースのリファレンス を選択します。

      これで、リソースがコードエディターで参照されます。

      ##@resource_reference{"mc.py"}
      mc.py
  3. 結果の検証

    Python 3

    1. 共通シェルノードの編集

      共通シェルノードで、スクリプト名の前に Python 3 のインタープリターパスを追加します。

      ##@resource_reference{"mc.py"}
      /home/tops/bin/python3 mc.py
    2. image アイコンをクリックし、リソースグループとカスタムイメージを選択して、タスクを実行します。

      ################################# End run custom-script. ##################################
      This is a test text
      2024-10-21 17:33:18 INFO ======================================================================
      2024-10-21 17:33:18 INFO Exit code of the Shell command 0
      2024-10-21 17:33:18 INFO --- Invocation of Shell command completed ---
      2024-10-21 17:33:18 INFO Shell run successfully!
      2024-10-21 17:33:18 INFO Current task status: FINISH
      2024-10-21 17:33:18 INFO Cost time is: 2.628s

    Python 2

    1. 共通シェルノードの編集

      共通シェルノードで、スクリプト名の前に Python 2 のインタープリターパスを追加します。

      ##@resource_reference{"mc.py"}
      python mc.py
    2. image アイコンをクリックし、リソースグループとカスタムイメージを選択して、タスクを実行します。

      image

EMR Shell ノード

  1. リソースの作成

    1. DataStudio ページへの移動

      DataWorks コンソールにログインします。対象のリージョンに切り替え、左側メニューで [データモデリングと開発] > データ開発 をクリックします。ドロップダウンリストから対象のワークスペースを選択し、データ開発へ をクリックします。

    2. EMR File リソースの作成

      DataStudio ページで、対象のワークフローを右クリックし、リソースの作成 を選択します。EMR ディレクトリで、[ファイル] を選択します。ストレージパス を選択し、クリックしてアップロード をクリックしてローカルから emr.py スクリプトをアップロードします。スクリプトの内容例:

      Python 3

      print('This is a test text')

      Python 2

      print "This is a test text"
      説明

      リソース名 emr.py は一例です。ビジネス要件に基づいて名前を指定できます。

    3. 提交 をクリックして、リソースをコミットします。

  2. リソースの参照

    1. EMR Shell ノードの作成

      DataStudio ページで、対象のワークフローを右クリックし、ノードの作成 を選択します。EMR ディレクトリで、EMR シェル を選択します。

    2. EMR File リソースの参照

      EMR Shell ノードの設定ページで、EMR > リソース の下にある emr.py リソースを見つけます。リソースを右クリックし、リソースのリファレンス を選択します。

      これで、リソースがコードエディターで参照されます。

      ##@resource_reference{"emr.py"}
      emr.py
  3. 結果の検証

    Python 3

    1. EMR Shell ノードの編集

      EMR Shell ノードで、スクリプト名の前に Python 3 のインタープリターパス /home/tops/bin/python3 を追加します。

      ##@resource_reference{"emr.py"}
      /home/tops/bin/python3 emr.py
    2. image アイコンをクリックし、リソースグループとカスタムイメージを選択して、タスクを実行します。

      >>> [2024-10-21 17:51:29][INFO    ][CommandExecutor        ]: Process start to execute...
      Process Output>>> This is a test text
      >>> [2024-10-21 17:51:29][INFO    ][CommandExecutor        ]: Process is exited with exit value 0
      >>> [2024-10-21 17:51:29][INFO    ][CommandExecutor        ]: Command state update to COMPLETED
      >>> [2024-10-21 17:51:29][INFO    ][CommandExecutor        ]: Process execute finished
      >>> [2024-10-21 17:51:29][INFO    ][EmrDccJobSubmitter     ]: Job Completed, status=0
      
      2024-10-21 17:51:29  INFO ============================================================
      2024-10-21 17:51:29 INFO Exit code of the Shell command 0
      2024-10-21 17:51:29 INFO --- Invocation of Shell command completed ---
      2024-10-21 17:51:29 INFO Shell run successfully!
      2024-10-21 17:51:29 INFO Current task status: FINISH
      2024-10-21 17:51:29 INFO Cost time is: 17.667s

    Python 2

    1. EMR Shell ノードの編集

      EMR Shell ノードで、スクリプト名の前に Python 2 のインタープリターパス python を追加します。

      ##@resource_reference{"emr.py"}
      python emr.py
    2. image アイコンをクリックし、リソースグループとカスタムイメージを選択して、タスクを実行します。

      image