【问题标题】:Computing PageRank on a digraph with edge weights using GraphFrames使用 GraphFrames 在具有边权重的有向图上计算 PageRank
【发布时间】:2020-09-22 16:14:20
【问题描述】:

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

将此与networkx.algorithms.link_analysis.pagerank_alg.pagerank 进行比较,后者允许在具有边权重的有向图上计算 PageRank,请参阅documentation

感谢您的阅读,感谢您的帮助。

【问题讨论】:

    标签: apache-spark directed-graph markov-chains pagerank graphframes


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多