编写Graph
本文将以单源最短距离(Single Source Shortest Path,SSSP)算法为例,为您介绍如何提交Graph作业。
前提条件
已安装并配置MaxCompute客户端。
安装与配置MaxCompute客户端,详情请参见MaxCompute客户端。
已安装并配置MaxCompute Studio。
安装与配置MaxCompute Studio,详情请参见安装MaxCompute Studio和配置MaxCompute Studio。
已安装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 Module,并命名为odps-graph-example-sssp。
说明创建MaxCompute Java Module。详情请参见创建MaxCompute Java Module。
在新建的odps-graph-example-sssp中,创建
BaseLoadingVertexResolver
类和SSSP
类。代码详情,请参见单源最短距离有向图。在IntelliJ IDEA中,通过MaxCompute Studio完成一键式打包。操作详情,请参见打包、上传及注册。
说明本示例将部署到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:代表当前顶点。
value:代表当前vertex到达源点(1)的最短距离。
说明如果您需要使用Graph功能,直接提交图计算作业即可。