Spark

时间:2019-04-07 09:46:20

标签: apache-spark spark-graphx

我正在使用GraphX测试PageRank应用程序。这是我的spark应用程序的相关代码。

val g: Graph[Int, Int] = GraphLoader.edgeListFile(
  sc,
  path,
  edgeStorageLevel = StorageLevel.MEMORY_AND_DISK,
  vertexStorageLevel = StorageLevel.MEMORY_AND_DISK
)

var strategy = PartitionStrategy.fromString("RandomVertexCut")
val gp = g.partitionBy(strategy, numPartitions)

println("Starting PageRank")
val ranks_init = gp.pageRank(0.0001).vertices

我正在将numPartitions设置为8。如果我看到Spark UI来观察我的应用程序的工作和任务。我看到的是:enter image description here

对于每个标记为fold at ...的工作,以下是我看到的阶段:enter image description here

我希望看到所有阶段都有8个任务,因为我已将分区数设置为8。但是,除了仅阶段之外,其他每个阶段都只有2个任务。为什么呢?

注意:由于我修改了某些GraphX scala文件以便将getPreferredLocations函数添加到VertexRDD和EdgeRDD,因此在主Spark代码库中,指向UI中出现的scala源文件的行号可能有所不同。

0 个答案:

没有答案