在 Spark GraphX 中更新节点属性时选择什么最佳结构?

2023-12-25

我有一段时间在寻找一种更新 GraphX 中节点属性的方法。我正在研究一个由节点和节点属性组成的图。例如 (1,(2,true))。在此示例中,1 是节点 ID,2 是节点的标签,true 表示节点已被访问。我已经使用 GraphLoader 加载了图表,并通过 RDD 制作了分布式图表。

我为每个节点使用的结构如下:

case class nodes_properties(label: Int, isVisited: Boolean = false)
      var work_graph = graph.mapVertices { case (node, property) => nodes_properties(node.toInt, false) }.cache()

当我想更新节点属性(例如其标签)时,我使用以下结构:

work_graph = work_graph.mapVertices((vid: VertexId, v: nodes_properties) => {
              if (vid == my_node) nodes_properties(newLabel,true)
              else v
            })

这个结构满足了我的要求,但正如我所见,它的计算成本非常高,仅对于具有 30000 个节点的图来说,大约需要 4 分钟,而当我使用 MATLAB 执行相同操作时,大约需要 25 秒。

Question:在算法过程中,有没有好的结构或者有效且理想的方法来更新图中节点的属性?这对我来说确实是一个瓶颈,我无法解决这个问题。

我应该提到该算法具有迭代性质,并且在每次迭代时我需要根据某些条件更新节点属性。

NOTE: i use unpersistVertices() and graph.checkpoint()但我的这个方法在更新节点属性方面非常耗时!


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spark GraphX 中更新节点属性时选择什么最佳结构? 的相关文章

随机推荐

  • 从 .NET 中的 app.config 或 web.config 读取设置

    我正在开发一个 C 类库 它需要能够从web config or app config文件 取决于 DLL 是从 ASP NET Web 应用程序还是 Windows 窗体应用程序引用 我发现 ConfigurationSettings A
  • 使用 VBA Excel 将范围内的单元格值增加 1

    我目前正在尝试实现插入新行值和自动复选框插入器 我目前将以下代码分布在不同的按钮上 因此分布在不同的子按钮上 我已将需要增加 1 个单元格的关键信息加粗 这将在单击 InsertNewBill 按钮后发生 Private Sub Inser
  • 错误:E0708:E0708:无效转换

    使用这个tutorial https blogs oracle com datawarehousing entry building simple workflows in oozie我为配置单元脚本创建了工作流程 但当我运行以下命令时出现
  • kotlin 中的全局对象声明

    如何在全局中声明对象kotlin就像在java中一样TextView tv 或者在不同方法 函数中调用相同变量的任何方法 override fun onCreate savedInstanceState Bundle super onCre
  • 如何设置即使在打瞌睡模式下也能工作的重复闹钟?

    我知道 setExactAndAllowWhileIdle 即使在 Doze 模式下也会调用警报 但如何让它每天重复 因为没有 setRepeatingAndAllowWhileIdle 类型的方法 None
  • Web API 2 项目和 MVC 5 网站项目在同一域中

    使用的技术 BreezeJS OData 网络应用程序接口2 MVC 5 集成开发环境 Visual Studio 2013 我一直在考虑在一个解决方案中拥有一个 Web API 项目和一个单独的网站项目的想法 我的 Web API 2 项
  • Java 8 Base64 JWT 令牌转换为 JSON

    因此 我在网上和 StackOverflow 上对此进行了一些研究 并且尝试了许多我发现的建议 问题是我正在登录我们的一项运行良好的 Oauth2 服务 我获得了 Oath2 JWT 令牌 我知道这是 Base64 编码的 我可以将令牌放入
  • 有没有办法在 mongoDB 中将 $exists 与 $expr 一起使用?

    我是 mongoDB 的新手 我需要在 mongoDB 中将 exists 与 expr 一起使用 我尝试了以下操作 lookup as collectionDet from collection let userId userId pip
  • 如何在 nextflow 工作流程中正确格式化“pod.securityContext”指令?

    我正在尝试配置podNextflow 流程中的指令 文档在这里 https www nextflow io docs latest process html process pod 我正在尝试遵循解决方案在这个SO问题中提供 https s
  • 如何在Powerpoint 2007 VBA中检测主题字体?

    有谁知道如何使用 VBA 检测 Powerpoint 2007 幻灯片对象中主题字体的使用 如果有人看Shape TextFrame TextRange Font Name字体名称显示为简单名称 例如 Arial 无论字体是否指定为固定名称
  • 在地址栏中隐藏查询参数 - VueJS

    我正在使用 Vue js 2 我正在尝试创建一个链接 将我发送到另一个页面 这就是我所拥有的 div div
  • 可以在亚马逊s3上存储json吗?

    我想将 json 文件存储到我的亚马逊 s3 然后使用 ajax 请求检索它 不幸的是 s3 似乎不允许内容类型 application json 我应该将文件保存为文本 纯文本 然后使用 php 添加标头 我已经找到问题了 我以错误的方式
  • 让 NSTimeZone 在单元测试中无故障

    因此 在 Objective C 中对日历代码进行单元测试时存在以下问题 时区包含有关夏令时的信息 因此您在夏天编写一个测试 预计 6 月 10 日的日出发生在早上 6 02 您的测试通过了 稍后 您在非 DST 时运行测试并且失败 因为当
  • Python 删除链表中的重复项

    我正在运行下面的代码以从链接列表中删除重复项 但我的代码仅在删除重复项之前打印链接列表 一旦调用removeDup方法 它就不会打印任何内容 下面是我的代码 请告诉我我错过了什么 class Node def init self data
  • 如何在 Chrome 开发工具中查找事件监听器?

    我知道将鼠标悬停在一个元素上会导致另一个元素添加一个新类 如何检查此 eventListener 在 Chrome 上的位置和内容 这Event ListenersChrome 中的选项卡仅列出文档上的一些侦听器 而不是任何特定元素 要查看
  • FXML 中的 JavaScript 脚本

    我正在尝试从 FXML 运行以下示例参考 https docs oracle com javase 8 javafx api javafx fxml doc files introduction to fxml html script bl
  • 生成随机字符串[重复]

    这个问题在这里已经有答案了 可能的重复 时间 2019 03 17 标签 c randomstringgenerator https stackoverflow com questions 1122483 c sharp random st
  • 使用 externalTrafficPolicy: Local 在 GKE 上是否可以实现无中断滚动更新?

    我有一个 GKE 集群 1 12 10 gke 17 我正在运行nginx 入口控制器 https github com kubernetes ingress nginx with type LoadBalancer 我已经设置了exter
  • 序列化多个对象

    我的序列化代码是这样的 public class slab public int lowerlimit get set public int upperlimit get set public int percentage get set
  • 在 Spark GraphX 中更新节点属性时选择什么最佳结构?

    我有一段时间在寻找一种更新 GraphX 中节点属性的方法 我正在研究一个由节点和节点属性组成的图 例如 1 2 true 在此示例中 1 是节点 ID 2 是节点的标签 true 表示节点已被访问 我已经使用 GraphLoader 加载