从this开始,“也可以从包含边缘信息的单个DataFrame构造GraphFrame。将从边缘的源和目的地推断出顶点。”
但是,当我查看其API doc时,似乎没有办法创建它。
有人尝试仅使用边缘DataFrame创建GraphFrame吗?怎么样?
答案 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)