如何向边添加属性?

时间:2018-05-02 09:19:40

标签: scala apache-spark spark-graphx

我有以下问题。我在spark中有一个数据帧“vert”,由三列组成:Origin(String),Destination(String),Distance(Integer)。因此,关于不同城市之间航班的数据很简单。 例如,它可能如下所示:

Chicago Houston 670
London Chicago 1200
...

我想在GraphX中创建相应的图形,我想将距离作为边缘属性到图形中。所以首先我必须定义边缘rdd。我找到了以下方法:

val ed = vert.rdd
  .map(x => ((MurmurHash.stringHash(x(0).toString), MurmurHash.stringHash(x(1).toString)), 1))
  .reduceByKey(_+_)
  .map(x => Edge(x._1._1, x._1._2, x._2))

不幸的是,此命令仅考虑列Origin和Destination并忽略列Distance,因此我没有关于rdd“ed”中距离的信息。我如何更改命令以便在rdd中也有距离?

很抱歉,如果这是一个愚蠢的问题,请提前致谢。

0 个答案:

没有答案