我有一个包含航班信息的csv文件:
10397,ATL,GA,10135,ABE,PA,692,188
10397,ATL,GA,10135,ABE,PA,692,142
10434,AVP,PA,10135,ABE,PA,50,65
...
列如下:ORIGIN_AIRPORT_ID,ORIGIN,ORIGIN_STATE_ABR,DEST_AIRPORT_ID,DEST,DEST_STATE_ABR,DISTANCE,TIME
我想从这些创建边缘和顶点rdds。
(数据存储在filtflights.csv
中)
为方便起见,我写了以下内容:
val flighttime:RDD[Edge[Integer]] = sc.textFile("filtflights.csv").map {line =>
val row = line.split(",")
Edge(row(0).toInt, row(3).toInt, row(7).toInt)
}
但是我不确定顶点。
通过收集的内容,我可以创建一个名为Airport
的类,然后执行以下操作:
val vertices: RDD[(VertexId,Airport)] = sc.textFile("filtflights.csv").map
但是我不确定如何将VertexId精确地设置为任何给定行的ORIGIN_AIRPORT_ID
(我假设每个节点最终都将是原点,因此不需要从{{1 }}列。)