如何解决使用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")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。