Apache spark 利用图框计算边权有向图的PageRank
假设我用正实数构造一个有向图Apache spark 利用图框计算边权有向图的PageRank,apache-spark,directed-graph,markov-chains,pagerank,graphframes,Apache Spark,Directed Graph,Markov Chains,Pagerank,Graphframes,假设我用正实数构造一个有向图g。然后,我想在考虑边缘权重的情况下计算PageRank。我不知道如何通过查看forgraphframes.GraphFrame.pageRank来实现这一点。调用results=g.pageRank(resetProbability=0.15,maxIter=10)将计算pageRank,但据我所知,假设边权重为1。我说得对吗 将其与networkx.algorithms.link\u analysis.pagerank\u alg.pagerank进行比较,后者允
g
。然后,我想在考虑边缘权重的情况下计算PageRank。我不知道如何通过查看forgraphframes.GraphFrame.pageRank
来实现这一点。调用results=g.pageRank(resetProbability=0.15,maxIter=10)
将计算pageRank,但据我所知,假设边权重为1。我说得对吗
将其与networkx.algorithms.link\u analysis.pagerank\u 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")
我认为或许我们可以先“展平”数据
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")