首页 > 解决方案 > GraphX 从 csv 创建边和顶点

问题描述

我有一个包含航班信息的 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) } 但我不确定顶点。根据我收集到的信息,我可以创建一个名为Airportexample 的类,然后执行以下操作:

val vertices: RDD[(VertexId,Airport)] = sc.textFile("filtflights.csv").map

但我不确定如何将 VertexId 设置ORIGIN_AIRPORT_ID为任何给定的行(我假设每个节点最终都将是原点,因此不需要从DEST_AIRPORT_ID列创建顶点。)

标签: graphrddspark-graphx

解决方案


推荐阅读