scala - RDD[(Long, Node)] 如何访问和更新?
问题描述
所以我试图创造这样的东西:
val initVertices = initGraph.vertices
val vertices : RDD[(Long, Node)] = initVertices.map{v =>
val vId = v._1.toLong
val vData = new Node(vId)
vData.id = vId
Tuple2(vId , vData)
}
我试图为“顶点”中的每个元素访问 Node.weight 并尝试更新值,有人可以帮我吗?十分感谢..
*ps:我是 scala 和 spark 的新手
解决方案
也许您需要创建案例类 Node,查看 Node 案例类的方法副本,它可以从存在创建另一个 Node,但具有一些新值:
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
case class Node(id: Long, weight: Long)
val initGraph: Graph[Long, Any] = ???
val initVertices: VertexRDD[Long] = initGraph.vertices
val vertices: RDD[(Long, Node)] = initVertices.map{
case (vertexId: VertexId, value: Long) =>
val vId = vertexId
val vData = Node(vId, value)
(vId , vData)
}
val nodeA = Node(1L, 1L)
val nodeB = nodeA.copy(id = 2L)
推荐阅读
- python - 如何操作列表字典?
- regex - 用于搜索电子邮件中“@”之前的字符的正则表达式模式
- html - 尝试使用@media 查询来调整手机、平板电脑桌面的图像大小
- go - 在 Go 中不使用内置 DNS 解析器(使用代理时)为域使用自定义 IP
- javascript - DevTools 无法解析 SourceMap:webpack:///node_modules/sockjs-client/dist/sockjs.js.map
- php - Understrap 自定义博客页面 - 不清楚哪个页面以及在哪里修改
- python - Pandas 忽略 json 正文中的标题和列
- tensorflow - 在卷积神经网络中计算维度
- python - 为什么我得到我不想要的句子?以及如何纠正它?
- sql - 识别 SQL 中 2 列组合的唯一性