标签:VD Graph 分区 构造 RDD ED 顶点 GraphX
GraphX 提供了几种从 RDD 或磁盘上的顶点和边的集合构建图的方法。 默认情况下,所有图构建器都不会重新划分图的边; 相反,边会留在它们的默认分区中(例如它们在 HDFS 中的原始块)。Graph.groupEdges 要求对图进行重新分区,因为它假定相同的边将位于同一分区上,因此您必须在调用之前调用 Graph.partitionBy 组边。
object GraphLoader { def edgeListFile( sc: SparkContext, path: String, canonicalOrientation: Boolean = false, minEdgePartitions: Int = 1) : Graph[Int, Int] }
GraphLoader.edgeListFile 提供了一种从磁盘上的边列表加载图形的方法。 它解析以下形式的(源顶点 ID,目标顶点 ID)对的邻接列表,跳过以 # 开头的注释行:
# 例如 2 1 4 1 1 2
它从指定的边创建一个 Graph,自动创建边连接提到的任何顶点。 所有顶点和边属性默认为 1。canonicalOrientation 参数允许在正方向 (srcId < dstId) 上重新定向边,这是连通分量算法所要求的。 minEdgePartitions 参数指定要生成的最小边分区数; 例如,如果 HDFS 文件具有更多块,则可能存在比指定更多的边缘分区。
object Graph { def apply[VD, ED]( vertices: RDD[(VertexId, VD)], edges: RDD[Edge[ED]], defaultVertexAttr: VD = null) : Graph[VD, ED] def fromEdges[VD, ED]( edges: RDD[Edge[ED]], defaultValue: VD): Graph[VD, ED] def fromEdgeTuples[VD]( rawEdges: RDD[(VertexId, VertexId)], defaultValue: VD, uniqueEdges: Option[PartitionStrategy] = None): Graph[VD, Int] }
Graph.apply 允许从顶点和边的 RDD 创建图。 重复的顶点被任意挑选,并且在边 RDD 中找到的顶点而不是顶点 RDD 被分配默认属性。
Graph.fromEdges 允许仅从边的 RDD 创建图,自动创建边提到的任何顶点并为其分配默认值。
Graph.fromEdgeTuples 允许仅从边元组的 RDD 创建图,为边分配值 1,并自动创建边提到的任何顶点并为其分配默认值。 它还支持去重边缘; 要进行重复数据删除,请将 PartitionStrategy 的某些部分作为 uniqueEdges 参数传递(例如,uniqueEdges = Some(PartitionStrategy.RandomVertexCut))。 分区策略对于在同一分区上共置相同的边缘是必要的,以便可以对它们进行重复数据删除。
标签:VD,Graph,分区,构造,RDD,ED,顶点,GraphX 来源: https://www.cnblogs.com/Ao0216/p/15960445.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。