课程表

Spark 基础

Spark RDDs

Spark Streaming

Spark SQL

GraphX编程指南

工具箱
速查手册

Spark GraphX图构造者

当前位置:免费教程 » 数据库/运维 » Spark

GraphX提供了几种方式从RDD或者磁盘上的顶点和边集合构造图。默认情况下,没有哪个图构造者为图的边重新分区,而是把边保留在默认的分区中(例如HDFS中它们的原始块)。Graph.groupEdges:Graph[VD,ED])需要重新分区图,因为它假定相同的边将会被分配到同一个分区,所以你必须在调用groupEdges之前调用Graph.partitionBy

  1. object GraphLoader {
  2. def edgeListFile(
  3. sc: SparkContext,
  4. path: String,
  5. canonicalOrientation: Boolean = false,
  6. minEdgePartitions: Int = 1)
  7. : Graph[Int, Int]
  8. }

GraphLoader.edgeListFile提供了一个方式从磁盘上的边列表中加载一个图。它解析如下形式(源顶点ID,目标顶点ID)的连接表,跳过以#开头的注释行。

  1. # This is a comment
  2. 2 1
  3. 4 1
  4. 1 2

它从指定的边创建一个图,自动地创建边提及的所有顶点。所有的顶点和边的属性默认都是1。canonicalOrientation参数允许重定向正方向(srcId < dstId)的边。这在connected components算法中需要用到。minEdgePartitions参数指定生成的边分区的最少数量。边分区可能比指定的分区更多,例如,一个HDFS文件包含更多的块。

  1. object Graph {
  2. def apply[VD, ED](
  3. vertices: RDD[(VertexId, VD)],
  4. edges: RDD[Edge[ED]],
  5. defaultVertexAttr: VD = null)
  6. : Graph[VD, ED]
  7. def fromEdges[VD, ED](
  8. edges: RDD[Edge[ED]],
  9. defaultValue: VD): Graph[VD, ED]
  10. def fromEdgeTuples[VD](
  11. rawEdges: RDD[(VertexId, VertexId)],
  12. defaultValue: VD,
  13. uniqueEdges: Option[PartitionStrategy] = None): Graph[VD, Int]
  14. }

Graph.apply(ClassTag[VD],ClassTag[ED]):Graph[VD,ED])允许从顶点和边的RDD上创建一个图。重复的顶点可以任意的选择其中一个,在边RDD中而不是在顶点RDD中发现的顶点分配默认的属性。

Graph.fromEdges允许仅仅从一个边RDD上创建一个图,它自动地创建边提及的顶点,并分配这些顶点默认的值。

Graph.fromEdgeTuples(ClassTag[VD]):Graph[VD,Int])允许仅仅从一个边元组组成的RDD上创建一个图。分配给边的值为1。它自动地创建边提及的顶点,并分配这些顶点默认的值。它还支持删除边。为了删除边,需要传递一个PartitionStrategy为值的Some作为uniqueEdges参数(如uniqueEdges = Some(PartitionStrategy.RandomVertexCut))。分配相同的边到同一个分区从而使它们可以被删除,一个分区策略是必须的。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号