IntelliJ IDEA は、Java プログラムを迅速に開発するための Java 向け統合開発環境 (IDE) です。このトピックでは、IntelliJ IDEA のプラグインである MaxCompute Studio を使用して、大文字を小文字に変換する Java のユーザー定義関数 (UDF) を開発する方法を説明します。
前提条件
IntelliJ IDEA で以下の準備が完了していることを確認してください。
手順
Java UDF を作成する。
[プロジェクト] エリアで、モジュールのソースディレクトリ (すなわち、) を右クリックし、 を選択します。
[Create new MaxCompute java class] ダイアログボックスで [UDF] をクリックし、[Name] に名前を入力して Enter キーを押します。例:Java クラス名を Lower とします。
[Name] フィールドには、MaxCompute Java クラスの名前を指定します。パッケージを作成していない場合は、
packagename.classnameを入力すると、パッケージが自動的に生成されます。コードエディターに以下のコードを入力します。
以下のコードは UDF の例です。
package <packagename>; import com.aliyun.odps.udf.UDF; public final class Lower extends UDF { public String evaluate(String s) { if (s == null) { return null; } return s.toLowerCase(); } }
UDF をデバッグし、正常に実行されることを確認します。
java ディレクトリで、Java クラスを右クリックし、[実行] を選択します。
[実行/デバッグ構成] ダイアログボックスで、実行パラメータを設定します。
MaxCompute プロジェクト:UDF を実行する MaxCompute プロジェクト。UDF をローカルで実行する場合は、[local] を選択します。
MaxCompute テーブル:使用する MaxCompute テーブルの名前。
テーブルの列:使用する MaxCompute テーブルの列。
[OK] をクリックします。結果は以下のコードに示されています。
package <packagename>; import com.aliyun.odps.udf.UDF; public class Lower extends UDF { public String evaluate(String s) { if (s == null) { return null; } return s.toLowerCase(); } }
MaxCompute UDF を登録する。
UDF の Java ファイルを右クリックし、[Deploy to server...] を選択します。
[Package a jar, submit resource and register function] ダイアログボックスで、以下のパラメータを設定します。
MaxCompute プロジェクト:UDF を含む MaxCompute プロジェクト。プラグインが現在のプロジェクトを自動的に選択するため、デフォルト値のままにしてください。
リソースファイル:UDF に必要なリソースファイルのパス。デフォルト値のままにできます。
リソース名:UDF に必要なリソース。デフォルト値のままにできます。
関数名:SQL ステートメントで UDF を呼び出す際に使用する名前。例:
lower_test。
[OK] をクリックして UDF の登録を完了します。
UDF を呼び出します。
左側の [Project Explorer] で、対象の MaxCompute プロジェクトを右クリックし、[Open in Console] を選択します。[Console] で、UDF を呼び出す SQL ステートメントを入力し、Enter キーを押します。
package com.aliyun.odps.udf.example; import com.aliyun.odps.udf.UDF; public final class Lower extends UDF { public String evaluate(String s) { if (s == null) { return null; } return s.toLowerCase(); } }[Console] で以下のコマンドを実行します。
select lower_test('ABC');以下の SQL ステートメントは例です。
select lower_test('ALIYUN');結果から、
lower_testJava UDF を使用できることがわかります。+------------+ | _c0 | +------------+ | aliyun | +------------+ 1 records (at most 10000 supported) fetched by instance tunnel.