我正在尝试使用java实现graphx的最短路径功能。这可以在scala中进行,但对于java,我无法找到有关如何执行此操作的详细文档/具体示例。在各个地方也提到过,Graphx没有Java API。
我找到了以下链接,其中显示了ShortestPath.run方法的详细信息:http://spark.apache.org/docs/latest/api/java/org/apache/spark/graphx/lib/ShortestPaths.html
我正在编写方法和说明,以便更好地解释。
run(Graph<VD,ED> graph, scala.collection.Seq<Object> landmarks, scala.reflect.ClassTag<ED> evidence$1)
该方法计算到给定地标顶点集的最短路径。
因此对于run方法,我尝试使用以下基本结构创建图形:
JavaRDD<Tuple2<Object, String>> vertices
JavaRDD<Edge<String>> edges
ClassTag Tag = scala.reflect.ClassTag$.MODULE$.apply("".class);
Graph<String,String> graph = Graph.apply(vertices.rdd(),
edges.rdd(), "", StorageLevel.MEMORY_ONLY(),StorageLevel.MEMORY_ONLY(),Tag, Tag);
我不确定这是否是Graph和ClassTag参数的正确方法或正确语法,因此请随意更正。
需要指定的run方法的剩余参数是地标顶点的序列,但我不知道如何指定/使用它。此参数是否需要顶点的id作为列表或其他内容?
scala.collection.Seq<Object> landmarks
任何人都可以提供有关如何实现graphx最短路径的解决方案,尤其是在java中吗?