使用GraphFrames在具有边缘权重的有向图中计算PageRank

问题描述

假定我使用GraphFrames来构造有向权重为正实数的有向图g。然后,我想在考虑边缘权重的情况下计算PageRank。我看不出如何通过查看graphframes.GraphFrame.pageRank的{​​{3}}来实现。调用results = g.pageRank(resetProbability=0.15,maxIter=10)将计算PageRank,但据我所知假定边缘权重为1。我说得对吗?

将此结果与networkx.algorithms.link_analysis.pagerank_alg.pagerank进行比较,它可以计算具有边权重的有向图上的PageRank,请参见documentation

感谢您的阅读和帮助。

解决方法

我认为我们可以先“扁平化”数据。

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")

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...