MaxCompute Studio を使用して Python ユーザー定義関数 (UDF) を開発できます。このトピックでは、その開発、テスト、公開の方法について説明します。
前提条件
開始する前に、以下を完了してください。Python ユーザー定義関数の開発
- [Project] ペインの [MaxCompute Studio] ディレクトリで、[scripts] を右クリックし、 を選択します。
- [Create new MaxCompute python class] ダイアログボックスで、[Name] フィールドにクラス名を入力し、[Kind] を [Python UDF] に設定し、[OK] をクリックします。
- エディターで UDF コードを記述します。
from odps.udf import annotate @annotate("bigint,bigint->bigint") class Hello(object): def evaluate(self, arg0, arg1): if None in (arg0,arg1): return None return arg0+arg1
UDF のテスト
UDF の開発後、コードをテストして、期待どおりに動作することを確認する必要があります。MaxCompute Studio はローカルテストをサポートしており、テーブルからサンプルデータをダウンロードして、UDF をローカルで実行およびデバッグできます。
- Python UDF スクリプトを右クリックし、[RUN] を選択します。
- [Edit configuration] ページで、必要なパラメーターを設定し、[OK] をクリックします。
- MaxCompute project:UDF を実行する MaxCompute プロジェクトです。「プロジェクト接続の管理」ですでに MaxCompute プロジェクト接続を設定している場合、このフィールドは、デフォルトで接続されているプロジェクトに設定されます。プロンプトに従って他のプロジェクトを追加することもできます。
- MaxCompute table:UDF の実行元となる MaxCompute テーブルです。選択した MaxCompute プロジェクトのテーブルのドロップダウンリストからテーブルを選択できます。
- テーブル列:UDF が使用するソーステーブルの列です。
- ダウンロードレコード数の制限:ダウンロードするレコードの最大数です。デフォルト:100。
説明- データがすでにダウンロードされている場合、MaxCompute Studio は再度ダウンロードしません。データを再ダウンロードするには、MaxCompute クライアントで Tunnel コマンドを実行します。
- デフォルトでは、100 レコードがダウンロードされます。より多くのデータでテストするには、MaxCompute クライアントの Tunnel コマンドまたは MaxCompute Studio のテーブルダウンロード機能を使用してデータをダウンロードしてください。
- ダウンロードが完了すると、[warehouse] ディレクトリにあるテーブルの [data] ファイルでサンプルデータを確認できます。
- ローカル実行フレームワークは、[data] ファイルの指定された列からデータを取得し、UDF をローカルで実行します。
説明 ローカル実行では、PyODPS の
pyouスクリプトが使用されます。コマンドはpyou hello.Hello<dataです。PyODPS のインストール後、コマンドを実行してスクリプトが存在することを確認できます。- Windows を使用している場合は、
${python}/../Scripts/pyouコマンドを実行してください。 - macOS を使用している場合は、
${python}/../pyouコマンドを実行してください。
- Windows を使用している場合は、
- 次の例は、Python ユーザー定義関数のソースコードです。コードを実行すると、コンソールで出力を確認できます。
from odps.udf import annotate @annotate("bigint,bigint->bigint") class Hello(object): def evaluate(self, arg0, arg1): if None in (arg0,arg1): return None return arg0+arg1
Python ユーザー定義関数の公開
Python ユーザー定義関数がテストに合格したら、本番環境に公開できます。詳細については、「関数をアップロードして登録する」をご参照ください。