このトピックでは、グラフジョブの作成方法を説明する例として、[単一始点最短経路] (SSSP) アルゴリズムを使用します。
前提条件
-
MaxCompute クライアントをインストールして設定し、MaxCompute インスタンスに接続していること。詳細については、「MaxCompute client」をご参照ください。
-
IntelliJ IDEA 2024 と、2024 年に更新された互換性のある MaxCompute Studio をインストールして設定していること。詳細については、「Install MaxCompute Studio」および「Configure MaxCompute Studio」をご参照ください。
-
Apache Maven バージョン
apache-maven-3.5.0を設定していること。 -
JDK 1.8 以降をインストールしていること。
-
データファイルを準備していること。このトピックでは sssp.txt ファイルを例として使用します。
1 2:2,3:1,4:4 2 1:2,3:2,4:1 3 1:1,2:2,5:1 4 1:4,2:1,5:1 5 3:1,4:1
手順
-
MaxCompute クライアントを起動し、次のコマンドを実行して、入力テーブル sssp_in と出力テーブル sssp_out を作成します。
CREATE TABLE sssp_in (v bigint, es string); CREATE TABLE sssp_out (vertex bigint, value bigint); -
Tunnel コマンドを実行して、スペースを列の区切り文字として使用し、sssp.txt ファイルから sssp_in テーブルにデータをアップロードします。
tunnel u -fd " " sssp.txt sssp_in;説明この例では、sssp.txt ファイルは MaxCompute クライアントの
binディレクトリに保存されています。sssp.txt ファイルへの正しいパスを指定してください。 -
SSSP のサンプルを作成します。
-
IntelliJ IDEA で、[MaxCompute Java モジュール] を作成し、odps-graph-example-sssp という名前を付けます。
説明詳細については、「Create a MaxCompute Java Module」をご参照ください。
-
新しい odps-graph-example-sssp モジュールに、
BaseLoadingVertexResolverクラスとSSSPクラスを作成します。Java コード全体については、「Single Source Shortest Path」の有向グラフの例を参照してください。pom.xml ファイルに次の依存関係を追加します。<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>0.48.0-public</version> </dependency> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-graph</artifactId> <version>0.48.0-public</version> </dependency> <!-- ローカルテスト用 --> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-graph-local</artifactId> <version>0.48.0-public</version> </dependency> -
IntelliJ IDEA で、MaxCompute Studio を使用してプロジェクトをパッケージ化します。詳細な手順については、「Package, upload, and register」をご参照ください。
説明この例では、MaxCompute プロジェクトにデプロイされる JAR パッケージの名前は odps-graph-example-sssp.jar です。
-
-
MaxCompute クライアントで、次のコマンドを実行して SSSP ジョブを実行します。
jar -libjars odps-graph-example-sssp.jar -classpath <LOCAL_JAR_PATH>/odps-graph-example-sssp.jar SSSP 1 sssp_in sssp_out;LOCAL_JAR_PATH: odps-graph-example-sssp.jar ファイルのローカルパス。
ジョブが完了したら、
select * from sssp_out;を実行して sssp_out テーブルをクエリし、結果を確認します。vertex value 1 0 2 2 3 1 4 3 5 2-
vertex: 頂点の ID。
-
value: 対応する頂点からソース頂点 (1) までの最短距離。
説明グラフ機能を使用するには、グラフジョブを送信するだけです。
-