我是GraphX的新手,我正在尝试为具有不同属性的图创建顶点。我有一个顶点具有Id,Type,SongName和其他具有Id,Type,Rank,Year的文件。它们在同一个文件中。不确定我是否必须分开它们。我创建了这个Vertex类:
class VertexProperty() extends Serializable
case class SongProperty(val vertexType: String, val songName: String) extends VertexProperty
case class BillboardProperty(val vertexType: String, val rank: Int, val year: Int) extends VertexProperty
我正在尝试在这里实施它,但不太确定我是如何或如果我在正确的轨道上。有什么帮助吗?
val BillboardSong: RDD[(VertexId, VertexProperty)] = sc.textFile(vertexBillboardSong).map {
line =>
val row = line.split(",")
(row(0).toLong, row(2))
}
答案 0 :(得分:0)
对文件中的顶点类型使用模式匹配。假设两种可能的类型是" song"和"广告牌":
val BillboardSong: RDD[(VertexId, VertexProperty)] = sc.textFile(vertexBillboardSong).map{
line =>
val row = line.split(",")
val id = row(0).toLong
val vertexType = row(1)
val prop = vertexType match {
case "song" => SongProperty(vertexType, row(2))
case "billboard" => BillboardProperty(vertexType, row(2).toInt, row(3).toInt)
}
(id, prop)
}