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

使用对RDD在Graphx中创建图形

谈灵均
2023-03-14

从RDD中提取(1)如下所示:

res2: Array[(String, String)] = Array((905067378709,905458844980))

共有1个答案

周龙光
2023-03-14

有向图的解法

让我们假设您有以下RDD对保持边:

val data: RDD[(String, String)] = sc.parallelize(
  Seq(
    ("905067378709", "905458844980"),
    ("905067378709", "905458844980"),
    ("905458844980", "905067378709"),
    ("905067378709", "905458844980"),
    ("905458844982", "905458844984"),
    ("905067378709", "905458844984"),
    ("905067378712", "905067378709")))

创建以下RDD[(VertexId,VertexId)]:

val edgesRDD: RDD[(VertexId, VertexId)] = data.map { case (a, b) => (a.toLong, b.toLong) }
val graph = Graph.fromEdgeTuples(edgesRDD, 1)
// to print 
val vert: VertexRDD[Int] = graph.vertices
vert.foreach { println }

val edg: EdgeRDD[Int] = graph.edges
edg.foreach { println }
val subgraph = graph.partitionBy(PartitionStrategy.CanonicalRandomVertexCut)
.groupEdges((a, b) => a + b)

// To print

val vert2: VertexRDD[Int] = subgraph.vertices
vert2.foreach { println }

val edg2: EdgeRDD[Int] = subgraph.edges
edg2.foreach { println }

边缘(905067378709,905458844980,3)边缘出现3次

边缘(905458844980,905067378709,1)

边缘(905458844982、905458844984、1)

 类似资料:
  • 我必须将Scala代码转换为python。 scala代码将string的RDD转换为case类的RDD。代码如下: 可以在PySpark中实现吗?我尝试使用以下代码,但出现错误 错误Py4JJavaError:调用z:org时出错。阿帕奇。火花应用程序编程接口。蟒蛇蟒蛇。收集和服务:组织。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段21.0中的任务0失败1次,最近的失败:

  • 问题内容: 我正在尝试使用ApachePOI在XLSX电子表格中创建条形图,但是Excel一直在说内容存在问题,并在尝试打开文件时删除该图。这是我要执行的操作的完整代码: 谁能帮助我找到(并且很好地解决)这个问题?提前致谢! 问题答案: 对于不了解背景的用户,ApachePOI仅支持ScatterCharts和LineCharts为什么?。原则上描述了如何进行。 就像我说的。首先进行 最简单 的条

  • 我一直在遵循教程,并读取了我自己的数据,这些数据被组合成[array[String],int],因此,例如,我的顶点是: 例如(3999,Array(17,Low,9)) 我的边缘是: 因此,您最终会得到一个匹配或不匹配数量的计数列表。 我遇到的问题是使用mapReduceTriplets应用任何函数,我对scala很陌生,所以这可能非常明显,但在graphx教程中有一个示例,它使用了一个格式为g

  • 如有任何建议或帮助,将不胜感激。 曼迪

  • 我不能处理230m边的图形。我克隆了Apache.Spark,构建了它,然后在Cluster上试用。 而且,收集所有的顶点和边来计算它们也不是一个好主意。这样做很容易:和