假设我使用GraphFrames来构造一个有向图g
,该图的边权重来自正实数。然后我想在考虑边缘权重的情况下计算PageRank。我看不出如何通过查看graphframes.GraphFrame.pageRank
的文档来实现这一点。调用results = g.pageRank(resetProbability=0.15, maxIter=10)
将计算PageRank,但据我所知,假设边缘权重为1。我说得对吗?
将其与networkx.algorithms.link_analysis.pagerank_alg.pagerank
进行比较,后者允许在具有边权重的有向图上计算PageRank,请参阅文档。
感谢您的阅读,并感谢您的帮助。
我认为我们可能可以先"压平"数据。
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")