我试图查看 ALS.checkpointInterval 的功能,但这不是很解释。

设置ALS.checkpointInterval和设置sc.setCheckpointDir()有什么区别?两者都是必要的,还是它们的工作方式不同?

最佳答案

SparkContext.setCheckpointDir用于设置全局检查点目录。它不仅限于ALS或任何其他特定算法,而且是RDD.checkpoint起作用所必需的。
ALS.checkpointInterval是特定于算法的属性,不会影响任何全局设置。从ML文档:



将这两件事放在一起:

  • 这两个东西在完全不同的上下文中工作,并且产生不同的结果
  • 都需要
  • 才能正确检查点。如果未设置检查点目录ALS won't checkpoint even if checkpoint interval is set:

    val shouldCheckpoint: Int => Boolean = (iter) =>
      sc.checkpointDir.isDefined &&
      checkpointInterval != -1 &&
      (iter % checkpointInterval == 0)
    
  • 07-24 13:04