Cette rubrique utilise l'algorithme Single Source Shortest Path (SSSP) pour illustrer l'écriture d'une tâche Graph.
Prérequis
Le client MaxCompute est installé, configuré et connecté à une instance MaxCompute. Pour plus d'informations, consultez la rubrique Client MaxCompute.
IntelliJ IDEA 2024 et une version compatible de MaxCompute Studio mise à jour en 2024 sont installés et configurés. Pour plus d'informations, consultez les rubriques Installer MaxCompute Studio et Configurer MaxCompute Studio.
Apache Maven version
apache-maven-3.5.0est configuré.JDK 1.8 ou une version ultérieure est installé.
-
Un fichier de données est prêt. Cette rubrique utilise le fichier sssp.txt comme exemple.
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
Procédure
-
Démarrez le client MaxCompute et exécutez les commandes suivantes pour créer la table d'entrée sssp_in et la table de sortie sssp_out.
CREATE TABLE sssp_in (v bigint, es string); CREATE TABLE sssp_out (vertex bigint, value bigint); -
Exécutez la commande Tunnel pour charger les données du fichier sssp.txt dans la table sssp_in, en utilisant un espace comme délimiteur de colonne.
tunnel u -fd " " sssp.txt sssp_in;RemarqueDans cet exemple, le fichier sssp.txt est enregistré dans le répertoire
bindu client MaxCompute. Veillez à indiquer le chemin correct vers votre fichier sssp.txt. -
Créez l'exemple SSSP.
-
Dans IntelliJ IDEA, créez un MaxCompute Java Module et nommez-le odps-graph-example-sssp.
RemarquePour plus d'informations, consultez la rubrique Créer un MaxCompute Java Module.
-
Dans le nouveau module odps-graph-example-sssp, créez la classe
BaseLoadingVertexResolveret la classeSSSP. Pour obtenir le code Java complet, reportez-vous à l'exemple de graphe orienté dans la rubrique Single Source Shortest Path. Ajoutez les dépendances suivantes au fichier 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> <!-- For local testing --> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-graph-local</artifactId> <version>0.48.0-public</version> </dependency> -
Dans IntelliJ IDEA, utilisez MaxCompute Studio pour empaqueter le projet. Pour des instructions détaillées, consultez la rubrique Empaqueter, charger et enregistrer.
RemarqueDans cet exemple, le package JAR déployé sur le projet MaxCompute est nommé odps-graph-example-sssp.jar.
-
-
Dans le client MaxCompute, exécutez la commande suivante pour lancer la tâche 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 : chemin local vers le fichier odps-graph-example-sssp.jar.
Une fois la tâche terminée, exécutez
select * from sssp_out;pour interroger la table sssp_out et vérifier le résultat.vertex value 1 0 2 2 3 1 4 3 5 2vertex : ID d'un sommet.
value : distance la plus courte entre le sommet correspondant et le sommet source (1).
RemarquePour utiliser la fonctionnalité Graph, il suffit de soumettre une tâche Graph.