如何仅从 Edge DataFrame 制作 GraphFrame

Muh*_*han 3 apache-spark apache-spark-sql pyspark graphframes

由此看来 “GraphFrame 也可以从包含边信息的单个 DataFrame 构建。顶点将从边的源和目的地推断出来。”

然而,当我查看其API 文档时,似乎无法创建一个。

有人尝试仅使用边缘 DataFrame 创建 GraphFrame 吗?如何?

Ale*_*ner 6

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

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

verticesDf.show()

graph=GraphFrame(verticesDf,edgesDf)
Run Code Online (Sandbox Code Playgroud)


cro*_*oik 5

graphframes scala API 有一个名为fromEdges的函数,它从边缘数据帧生成图框。据我所知,这个函数在 pyspark 中不可用,但你可以这样做:

##something

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

##more something
Run Code Online (Sandbox Code Playgroud)

达到同样的目的。