当前位置: 首页 > 知识库问答 >
问题:

spark和graphx问题中foreach循环中的子图

汝宏伯
2023-03-14

希望有人能帮忙。

我试图编写一个程序,它需要在Graphx上对连接到网络中每个节点的每个边缘ID执行一个函数。

graph.vertices.foreach {
  network => 
    val KeyVert = network._1
val EGraph = graph.subgraph(e => e.dstId == KeyVert)
println(KeyVert)
EGraph.edges.foreach(println)
}

但是,只有在添加collect函数从rdd中收集图形数据时,它才会起作用。

graph.vertices.collect.foreach {
  network => 
    val KeyVert = network._1
val EGraph = graph.subgraph(e => e.dstId == KeyVert)
println(KeyVert)
EGraph.edges.foreach(println)
}

网络太大,无法收集边缘数据,因此任何帮助都将非常感谢。

共有1个答案

邢修明
2023-03-14

嗯...问题是你没有理解驱动程序和工作人员...当你调用collect函数时,所有的数据都被收集到驱动程序,然后foreach函数看起来工作得很好。事实上,graph.vertices.foreach没有报告任何错误,对吗?因为它真的工作得很好,只需在工人日志中打印信息。你知道我说了什么吗?希望能有所帮助。

 类似资料:
  • 值5=5 值6=6 值7=7 结果lopping1=6 结果lopping2=15 结果lopping3=24 我该怎么办?

  • 问题内容: 我本来打算通过 在。有几点我不了解。 迭代器函数的用途是什么?没有它,还有什么办法吗? 如下所示,键和值的意义是什么? PS: 我试图在不带参数的情况下运行此函数,但它不起作用。 这是我的: 我的档案: 另一个问题 :如果在控制台中出现条件并显示“ username is thomas”,为什么上面的功能没有打开? 问题答案: 问题1和2 因此,基本上,第一个参数是要迭代的对象。它可以

  • 我已经创建了一个字符串数组,其中包含单词“磅”、“美元”和“欧元”,我想把这些标签放在旗帜的左边(为了用户应用程序的清晰性,因为不是每个用户都知道哪个货币属于哪个国家)。 我创建了一个循环,将创建一个标签,并将其分配到旗帜的左侧,它应该使一个"英镑"标签,然后一个"美元",然后一个"欧元"每次穿越Y轴南部,使他们与旗帜对齐然后,它将重置数组计数以返回到正确的字符串,沿着x轴移动并再次重复。然而,它

  • 问题内容: 这个问题不太可能对将来的访客有所帮助;它仅与较小的地理区域,特定的时间段或极为狭窄的情况(通常不适用于Internet的全球受众)有关。要获得使该问题更广泛适用的帮助,请访问帮助中心。 7年前关闭。 例如: doc1 = 8 doc2 = 7 doc3 = 1 我想计算$ value,所以结果是8 + 7 + 1 =16。我该怎么办? 谢谢。 问题答案:

  • 我尝试将一个循环转换为一个循环在flutter中等待循环。我想要循环的元素是Firebase实时数据库中的快照。 我的函数如下所示: 我尝试了不同的方法,但是我没有让函数工作。 第一次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 第二次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 在所有的尝试中,我都得到了相同的错误。但是上述

  • foreach循环遍历列表值并将控制变量(var)依次设置为列表的每个元素 - 语法 (Syntax) Perl编程语言中foreach循环的语法是 - foreach var (list) { ... } 流程图 (Flow Diagram) 例子 (Example) #!/usr/local/bin/perl @list = (2, 20, 30, 40, 50); # foreach lo