如何仅从Edge DataFrame制作GraphFrame

时间:2019-08-15 16:55:03

标签: apache-spark pyspark apache-spark-sql graphframes

this开始,“也可以从包含边缘信息的单个DataFrame构造GraphFrame。将从边缘的源和目的地推断出顶点。”

但是,当我查看其API doc时,似乎没有办法创建它。

有人尝试仅使用边缘DataFrame创建GraphFrame吗?怎么样?

2 个答案:

答案 0 :(得分:2)

graphframes scala API具有一个名为fromEdges的函数,该函数从边缘数据帧生成一个graphframe。据我所知,该功能在pyspark中不可用,但是您可以执行以下操作:

##something

verticesDf = edgesDF.select('src').union(edgesDF.select('dst'))
verticesDf = verticesDf.withColumnRenamed('src', 'id')

##more something

达到相同的目的。

答案 1 :(得分:0)

为了避免在顶点列表中出现重复,我将添加一个不同的

verticesDf=edgesDf \
     .select("src") \ 
     .union(edgesDf.select("dst")) \
     .distinct() \
     .withColumnRenamed('src', 'id')

verticesDf.show()

graph=GraphFrame(verticesDf,edgesDf)