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

MaxCompute:Java プログラムのパッケージ化、パッケージのアップロード、MaxCompute UDF の作成

最終更新日:Mar 26, 2026

IntelliJ IDEA で Java プログラムを開発およびデバッグした後、それを JAR ファイルにパッケージ化し、MaxCompute プロジェクトにリソースとしてアップロードし、ユーザー定義関数 (UDF) として登録します。MaxCompute Studio を使用すると、これら 3 つのステップすべてを 1 つのダイアログから実行できます。

前提条件

開始する前に、開発およびデバッグ済みの Java プログラムがあることを確認してください。詳細については、「UDF の開発」、「MapReduce プログラムの開発」、または「Graph プログラムの開発」をご参照ください。

ワンステップでのパッケージ化、アップロード、登録

MaxCompute Studio は、IntelliJ IDEA 内の単一のワークフローで、JAR ファイルのパッケージ化、MaxCompute プロジェクトへのアップロード、および UDF の登録を行います。これらの操作を実行するには、このメソッドを使用することを推奨します。

  1. IntelliJ IDEA の左側のナビゲーションウィンドウで、[Project] をクリックします。[src] > [main] > [java] を選択し、コンパイルした Java プログラムを右クリックして、[Deploy to server...] を選択します。

  2. [Package a jar, submit resource and register function] ダイアログボックスで、次のパラメーターを設定します。

    打包

    パラメーター説明
    MaxCompute プロジェクトJava プログラムが属する MaxCompute プロジェクト。このフィールドは自動的に入力されます。
    リソースファイルJAR ファイルが格納されているローカルディレクトリ。
    リソース名JAR ファイルを MaxCompute プロジェクトにアップロードする際に使用する名前。
    リソースのコメント(任意) リソースのコメント。
    追加リソースUDF が依存する追加のリソースファイル。リソースリストからファイルを選択します。複数のファイルを選択するには、Ctrl キーを押しながら各ファイルをクリックします。このリストには、MaxCompute プロジェクトに既に追加されているリソースのみが表示されます。リソースの追加手順については、「リソースの可視化管理」の「リソースの追加」セクションをご参照ください。
    メインクラスJava プログラムで定義された UDF クラス。
    関数名MaxCompute に表示される UDF の名前。SQL ステートメントで UDF を呼び出すときにこの名前を使用します。
    すでに存在する場合に強制的に更新このオプションを選択すると、作成する UDF またはリソースは、MaxCompute プロジェクト内の同じ名前の既存の UDF またはリソースを上書きします。
  3. [OK] をクリックします。ダイアログボックスが閉じ、UDF が登録されます。これで、SQL ステートメントで呼び出すことができます。

各ステップの個別管理

このアプローチは、ビルド済みの JAR を使用する場合、リソースを個別にアップロードする場合、または外部のビルドパイプラインと統合する場合など、より多くのコントロールが必要な場合に使用します。

  1. Java プログラムを JAR ファイルにパッケージ化します。詳細については、「JAR ファイルの生成」をご参照ください。

  2. JAR ファイルを MaxCompute にアップロードします。詳細については、「リソースの可視化管理」の「リソースの追加」セクションをご参照ください。

  3. MaxCompute UDF を作成します。詳細については、「UDF の登録」の「関数の作成」セクションをご参照ください。

登録後の UDF の呼び出し

Java UDF を登録した後、MaxCompute SQL で次のように呼び出します。

  • 同じプロジェクト内:ビルトイン関数を呼び出すのと同じ方法で UDF を呼び出します。

  • プロジェクト間:プロジェクト A でプロジェクト B の UDF を呼び出すには、次の SQL ステートメントを使用します。

    SELECT B:<udf_name>(<arg0>, <arg1>) FROM <table_name>;

    プロジェクト間のリソースアクセスに関する詳細については、「パッケージに基づくプロジェクト間のリソースアクセス」をご参照ください。

参考