Topik ini menjelaskan cara menulis Pekerjaan Graph. Dalam topik ini, algoritma Single Source Shortest Path (SSSP) digunakan sebagai contoh.
Prasyarat
Klien MaxCompute telah diinstal, dikonfigurasi, dan terhubung ke instance MaxCompute. Untuk informasi lebih lanjut, lihat Klien MaxCompute (odpscmd).
Alat pengembangan IDEA 2024 telah disiapkan, dan MaxCompute Studio telah diinstal serta dikonfigurasi (waktu pembaruan versi untuk MaxCompute Studio harus dalam tahun 2024). Untuk informasi lebih lanjut tentang cara menginstal dan mengonfigurasi MaxCompute Studio, lihat Instal MaxCompute Studio dan Konfigurasikan MaxCompute Studio.
Maven
apache-maven-3.5.0telah dikonfigurasi.Java Development Kit (JDK) 1.8 atau yang lebih baru telah diinstal.
File data telah disiapkan. File sssp.txt digunakan dalam contoh ini. File sssp.txt berisi data berikut:
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
Prosedur
Jalankan klien MaxCompute dan eksekusi pernyataan berikut untuk membuat tabel input bernama sssp_in dan tabel output bernama sssp_out.
CREATE TABLE sssp_in (v bigint, es string); CREATE TABLE sssp_out (vertex bigint, value bigint);Jalankan perintah Tunnel untuk mengunggah data dalam file sssp.txt ke tabel sssp_in. Pisahkan data di kolom yang berbeda dengan spasi.
tunnel u -fd " " sssp.txt sssp_in;CatatanDalam contoh ini, file sssp.txt disimpan di direktori
bindari klien MaxCompute. Perhatikan direktori sebenarnya di mana file sssp.txt disimpan.Tulis kode SSSP.
Buat MaxCompute Java module bernama odps-graph-example-sssp di IntelliJ IDEA.
CatatanBuat modul Java MaxCompute. Untuk informasi lebih lanjut, lihat Buat Modul Java MaxCompute.
Buat kelas
BaseLoadingVertexResolverdan kelasSSSPdi odps-graph-example-sssp. Untuk informasi lebih lanjut tentang cara membuat kelas, lihat kode sampel untuk graf berarah yang diberikan di SSSP. Berikut adalah kode konfigurasi dalam file 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> <!-- used for local test --> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-graph-local</artifactId> <version>0.48.0-public</version> </dependency>Di IntelliJ IDEA, kemas program Java menjadi file JAR menggunakan MaxCompute Studio. Untuk informasi lebih lanjut tentang cara mengemas program Java menjadi file JAR, lihat Kemas Program Java, unggah paket, dan buat MaxCompute UDF.
CatatanDalam contoh ini, paket JAR yang diterapkan di proyek MaxCompute bernama odps-graph-example-sssp.jar.
Jalankan perintah berikut pada klien MaxCompute untuk menggunakan algoritma 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: menunjukkan jalur lokal dari paket odps-graph-example-sssp.jar.
Setelah Anda menjalankan perintah di atas, jalankan
select * from sssp_out;untuk memeriksa tabel sssp_out dan verifikasi hasilnya.vertex value 1 0 2 2 3 1 4 3 5 2vertex: menunjukkan vertex saat ini.
value: menunjukkan nilai SSSP dari vertex saat ini ke Vertex Sumber 1.
CatatanJika Anda ingin menggunakan fitur Graph, Anda dapat langsung mengirimkan Pekerjaan Graph.