【发布时间】:2018-06-16 14:32:13
【问题描述】:
我正在试验 Spark,而且我是 Scala 和 GraphX 的新手。
我正在建立一个由电影和在其中扮演角色的演员组成的双向网络。 我的输入是一个空格分隔的文件,每行一个边,第一列是电影 ID,第二列是演员 ID,这是一个摘录:
movie actor
1 1
2 1
2 2
3 1
3 3
3 4
3 5
3 6
3 7
4 1
我的目标是研究演员之间的关系。为此,我想创建一个单部分图 actor-actor,其边缘值取决于这些演员的常见电影数量。
我从创建边的 RDD 开始:
val edges: RDD[Edge[String]] = sc.textFile("file:///home/actorMovie").map { line =>
val fields = line.split(" ")
Edge(fields(0).toLong, fields(1).toLong)
}
看起来不错:
edges.take(10)
res8: Array[org.apache.spark.graphx.Edge[String]] = Array(Edge(1,1,null), Edge(2,1,null), Edge(2,2,null), Edge(3,1,null), Edge(3,3,null), Edge(3,4,null), Edge(3,5,null), Edge(3,6,null), Edge(3,7,null), Edge(4,1,null))
然后从那里开始,我不知道如何将其转换为加权单部图。
【问题讨论】:
标签: scala apache-spark graph rdd spark-graphx