edit-icon download-icon

UDF の作成

最終更新日: May 05, 2018

UDF について

UDF はユーザー定義関数の略です。MaxCompute は、コンピューティング要件を満たすための多くの組み込み関数を提供します。異なるコンピューティングのニーズを満たすために UDF を作成することもできます。UDF の使用法は、一般的な組み込み関数の使用法と似ています。Java UDF は、Java を使用して実装された UDF を指します。

大規模データプラットフォームにおける一般的な Java UDF の使用プロセスは、次の 4 つのステップで構成されています。(1)ローカル環境で Java コードを準備してデバッグし、JAR パッケージにコンパイルします。 (2)DataWorks でリソースを作成し、JAR パッケージをアップロードします。 (3)DataWorks で関数を作成して登録し、その関数を JAR リソースに関連付ける。 (4)Java UDF を使用する。詳細は次の図に示されています。

1

使用事例

小文字を変換するための UDF を実装します。

ステップ1:コーディング

MaxCompute UDF framework の指示に従って、ローカル Java 環境で機能的に実装するための Java コードを記述してください( UDF 開発プラグインを追加する必要があります。)、それらを JAR パッケージにコンパイルします。

この例の Java コードは次のとおりです。コンパイルされた JAR パッケージは my_lower.jar です。

  1. package test_UDF;
  2. import com.aliyun.odps.udf.UDF;
  3. public class test_UDF extends UDF {
  4. public String evaluate(String s) {
  5. if (s == null) { return null; }
  6. return s.toLowerCase();
  7. }
  8. }

ステップ 2:JAR リソースを追加

UDF を実行する前に、参照する UDF コードを指定する必要があります。あなたが書いた Java コードは、大きなデータプラットフォームにリソースとしてアップロードする必要があります。Java UDF は JAR パッケージに組み込まれ、JAR パッケージリソースとしてプラットフォームに追加されなければなりません。UDF フレームワークは自動的に JAR パッケージをロードして UDF を実行します。

特定の手順は次のとおりです。

  1. 開発者として Alibaba Cloud DTplusプラットフォーム> DataWorks>管理コンソールに移動します。対応するプロジェクトのアクションバーに作業領域を入力をクリックします。

    1

  2. リソースファイルを作成します。ファイルディレクトリツリーのフォルダを右クリックし、リソースのアップロードを選択してリソースをアップロードします。

  3. アップロードリソースポップアップウィンドウで設定を完了し、 Submit をクリックします。1

リソースは、送信が成功した後に正常に作成されます。

ステップ 3:UDF を登録

これまでの手順では、Java UDF コードの作成と JAR リソースのアップロードが完了しました。これにより、ビッグデータプラットフォームはユーザーコードを自動的に取得して実行できます。しかし、この UDF は、この時点で大きなデータ・プラットフォームでは利用できません。なぜなら、プラットフォームにはまだ UDF に関する情報がないからです。したがって、プラットフォームに固有の関数名を登録し、関数名を特定のリソースの関数にマップする必要があります。

特定の手順は次のとおりです。

  1. 関数ディレクトリを作成します。ファイルディレクトリツリーの機能の管理に切り替えて、新しいディレクトリを作成します。

  2. ディレクトリフォルダを右クリックし、新しい機能を選択するか、右側の作業領域の右上隅にある New をクリックして、 New Function を選択します。

  3. Create MaxCompute 関数のポップアップウィンドウで設定を完了し、 Submit をクリックします。

    1

この関数は、送信が成功した後で正常に作成されます。

ステップ 4:MaxCompute SQL で関数をテスト

Java UDF の具体的な使用法は、プラットフォーム内の組み込み関数の使用法と同じです。特定の手順は次のとおりです。

  1. ワークゾーンの右上隅にある New をクリックし、 New Script File を選択して SQL スクリプトファイルを作成します。

  2. コードエディタで SQL 文を記述します。

サンプルコード:

  1. select my_lower('A') from dual;
  1. 1ボタンをクリックします。

    1

これまで、Java UDF の登録を完了し、SQL でローカル・コール・テストを実行しました。小文字の文字変換を実行するために毎日のスケジューリングが必要な場合は、ワークフローで新しい MaxCompute SQL ノードを作成し、ワークフローのスケジュール設定プロパティを設定します。