У меня есть 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
Я хочу создать ребра и вершины из них. (данные хранятся в 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
для любого заданногоrow (я придерживаюсь предположения, что каждый узел будет в конечном итоге источником, поэтому не нужно создавать вершины из столбца DEST_AIRPORT_ID
.)