使用graphframes计算边权有向图上的pagerank

vvppvyoh  于 2021-05-26  发布在  Spark
关注(0)|答案(1)|浏览(815)

假设我用graphframes来构造一个有向图 g 使用正实数的边权重。然后我想计算pagerank,同时考虑边权重。我不明白如何通过查看 graphframes.GraphFrame.pageRank . 打电话 results = g.pageRank(resetProbability=0.15, maxIter=10) 将计算pagerank,但据我所知,假设边权重为1。我说的对吗?
将此与 networkx.algorithms.link_analysis.pagerank_alg.pagerank 它允许使用边权重计算有向图上的pagerank,请参阅文档。
感谢您的阅读和任何帮助是感激的。

ztigrdn8

ztigrdn81#

我想我们可以先把数据“扁平化”。

val df = Seq((1,2,3),(2,3,4),(3,4,1)).toDF("src", "dst", "weight")
val getArray = udf[Seq[Int], Int] {x => (1 to x).toList.toSeq}
val flatDf = df \
             .withColumn("dummy1", getArray(col("weight"))) \
             .withColumn("dummy2", explode(col("dummy1"))).select("src", "dst")

相关问题