我有以下问题。我在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中也有距离?
很抱歉,如果这是一个愚蠢的问题,请提前致谢。