Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 在火花图HX中为每个连接的部件运行lambda_Apache Spark_Spark Graphx_Connected Components - Fatal编程技术网

Apache spark 在火花图HX中为每个连接的部件运行lambda

Apache spark 在火花图HX中为每个连接的部件运行lambda,apache-spark,spark-graphx,connected-components,Apache Spark,Spark Graphx,Connected Components,我试图在Spark的graphx中为每个连接的组件执行一些lambda。我使用connectedComponents()方法获取连接的组件,但除了收集图中所有不同的顶点ID(将标签分配给组件),然后执行foreach,并使用subgraph()方法获取每个组件之外,我找不到其他方法。但这是一个循序渐进的过程,如果我的图中有很多小组件,那么它是不可伸缩的。有人能帮我吗?有没有一种方法可以说像ConnectedComponentGraph.foreachComponent(lambda)这样的东西?

我试图在Spark的graphx中为每个连接的组件执行一些lambda。我使用connectedComponents()方法获取连接的组件,但除了收集图中所有不同的顶点ID(将标签分配给组件),然后执行foreach,并使用subgraph()方法获取每个组件之外,我找不到其他方法。但这是一个循序渐进的过程,如果我的图中有很多小组件,那么它是不可伸缩的。有人能帮我吗?有没有一种方法可以说像ConnectedComponentGraph.foreachComponent(lambda)这样的东西?

我建议使用:

并使用基本SQL进行后续操作:

components
  .join(gdf.vertices, Seq("id"))
  .join(gdf.edges.select($"src" as "id"), Seq("id"))
  .groupBy("component")
  .count

非常感谢你!你给了我一个线索,我基本上也这么做了,甚至没有切换到GraphFrame。顺便说一句,你为什么推荐它(除了它更新的事实之外)?另一个问题,也许你可以帮助,你知道如何指定connectedComponents()方法的迭代次数吗?我有一些合成测试,它们都需要不同的迭代次数。这里的策略是什么?
components
  .join(gdf.vertices, Seq("id"))
  .join(gdf.edges.select($"src" as "id"), Seq("id"))
  .groupBy("component")
  .count