DataWorksは、Pythonスクリプトを実行するために使用できるShellノードを提供します。このトピックでは、共通ShellノードまたはE-MapReduce(EMR)Shellノードを使用してPython 2またはPython 3スクリプトを実行する方法について説明します。
背景情報
DataWorksでは、Pythonスクリプトをリソースとしてアップロードできます。共通ShellノードまたはEMR ShellノードでPython 3またはPython 2スクリプトの実行パスを指定して、アップロードされたリソースを参照してPythonスクリプトを実行できます。
前提条件
EMR Shellノードを使用するための前提条件については、EMR Shellノードを作成するをご参照ください。
共通Shellノードを使用するための前提条件については、Shellノードを作成するをご参照ください。
サードパーティ製パッケージは、使用するリソースグループに基づいてインストールされます。 DataWorksリソースグループでPythonスクリプトを実行する場合は、サードパーティ製パッケージを参照する必要があります。
サーバーレスリソースグループ(推奨)を使用する場合は、イメージ管理機能を使用してサードパーティ製パッケージをインストールできます。 詳細については、イメージを管理するをご参照ください。
スケジューリング専用の排他的リソースグループを使用する場合は、O&Mアシスタント機能を使用してサードパーティ製パッケージをインストールできます。 詳細については、O&Mアシスタント機能を使用するをご参照ください。
説明インストールするサードパーティ製パッケージは、
Python 2
とPython 3
をサポートしている必要があります。
制限事項
EMR Shellノードを使用する場合の制限については、EMR Shellノードを作成するをご参照ください。
共通Shellノードを使用する場合の制限については、Shellノードを作成するをご参照ください。
Shellノードを使用してPythonスクリプトを実行する
DataWorksでは、共通ShellノードまたはEMR Shellノードを使用して、リソースを参照することでPythonスクリプトを実行できます。 Pythonスクリプトにアクセスするためのパスは、Pythonのバージョンによって異なります。
Python 2:
python xx.py
Python 3:
/home/tops/bin/python3 xx.py
以下のセクションでは、2種類のアクセス方法について詳しく説明します。ビジネス要件に基づいて、Pythonスクリプトを実行する方法を選択できます。
共通Shellノードを使用してPythonスクリプトを実行する
リソースを作成します。
DataStudioページに移動します。
DataWorks コンソール にログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
MaxCompute Pythonリソースを作成します。
DataStudio ページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、[リソースの作成] > [MaxCompute] > [Python] を選択します。 [リソースの作成] ダイアログボックスで、[名前] パラメーターを
mc.py
に設定し、[作成] をクリックします。説明mc.py
はサンプルのリソース名です。 業務要件に基づいてリソース名を指定できます。MaxCompute Pythonリソースを編集します。
MaxCompute Pythonリソースの構成タブで、ノードコードを開発します。サンプルコード:
Python 3
print('This is a test text') //テストテキストを出力します
Python 2
print "This is a test text" #テストテキストを出力します
リソースの構成タブの上部ツールバーにある
アイコンと
アイコンをそれぞれクリックして、リソースを保存およびコミットします。
リソースを参照します。
共通Shellノードを作成します。
DataStudioページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、[ノードの作成] > [一般] > [shell] を選択します。 ノードの作成ダイアログボックスで、名前パラメーターを設定し、確認をクリックします。
リソースを参照します。
共通シェルノードの構成タブで、[MaxCompute] フォルダーの [リソース] の下にある、[参照したい]
mc.py
リソースを見つけ、リソース名を右クリックし、[リソースパスの挿入] を選択します。共通Shellノードの構成タブに次の図に示す情報が表示されている場合、リソースは共通Shellノードによって参照されています。
結果を確認します。
Python 3を使用して共通Shellノードで参照されているリソースを実行する
共通Shellノードを構成します。
次のPython 3コマンド実行パスを共通Shellノードの構成タブに追加します。
##@resource_reference{"mc.py"} /home/tops/bin/python3 mc.py // Python3 を使用してリソースを実行します
アイコンをクリックします。 警告メッセージで、[実行を続行] をクリックします。 [ランタイムパラメーター] ダイアログボックスで、リソースグループを選択し、カスタムイメージを指定して、[OK] をクリックします。 次の図に示す情報が返されます。
Python 2を使用して共通Shellノードで参照されているリソースを実行する
共通Shellノードを構成します。
次のPython 2コマンド実行パスを共通Shellノードの構成タブに追加します。
##@resource_reference{"mc.py"} python mc.py // Python2 を使用してリソースを実行します
アイコンをクリックします。 警告メッセージで、[実行を続行] をクリックします。 [ランタイムパラメーター] ダイアログボックスで、リソースグループを選択し、カスタムイメージを指定して、[OK] をクリックします。 次の図に示す情報が返されます。
EMR Shellノードを使用してPythonスクリプトを実行する
リソースを作成します。
DataStudioページに移動します。
DataWorks コンソール にログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
EMRファイルリソースを作成します。
DataStudio ページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、[リソースの作成] > [EMR] > [EMR ファイル] を選択します。 [リソースの作成] ダイアログボックスで、[ファイルソース] パラメーターに [ローカル] を選択し、[アップロード] をクリックして
emr.py
スクリプトをアップロードします。 次に、[作成] をクリックします。 サンプルスクリプトの内容:Python 3
print('This is a test text') //テストテキストを出力します
Python 2
print "This is a test text" #テストテキストを出力します
説明emr.py
はサンプルのリソース名です。 業務要件に基づいてリソース名を指定できます。リソースの構成タブの上部ツールバーにある
アイコンをクリックして、リソースをコミットします。
リソースを参照します。
EMR Shellノードを作成します。
DataStudioページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、[ノードの作成] > [EMR] > [EMR Shell] を選択します。 ノードの作成ダイアログボックスで、名前パラメーターを設定し、確認をクリックします。
EMRファイルリソースを参照します。
[リソース] の [EMR] フォルダーの下にある、参照したい
emr.py
リソースを見つけ、リソース名を右クリックし、[リソースパスの挿入] を選択します。EMR Shellノードの構成タブに次の図に示す情報が表示されている場合、リソースはEMR Shellノードによって参照されています。
結果を確認します。
Python 3を使用してEMR Shellノードで参照されているリソースを実行する
EMR Shellノードを構成します。
Python 3 コマンド実行パス
/home/tops/bin/python3
を EMR シェルノードの構成タブに追加します。##@resource_reference{"emr.py"} /home/tops/bin/python3 emr.py // Python3 を使用してリソースを実行します
アイコンをクリックします。 [パラメーター] ダイアログボックスで、リソースグループを選択し、カスタムイメージを指定して、[実行] をクリックします。 次の図に示す情報が返されます。
Python 2を使用してEMR Shellノードで参照されているリソースを実行する
EMR Shellノードを構成します。
Python 2 コマンド実行パス
python
を EMR シェルノードの構成タブに追加します。##@resource_reference{"emr.py"} python emr.py // Python2 を使用してリソースを実行します
アイコンをクリックします。 [パラメーター] ダイアログボックスで、リソースグループを選択し、カスタムイメージを指定して、[実行] をクリックします。 次の図に示す情報が返されます。