pyspark.RDD.localCheckpoint

RDD. localCheckpoint ( ) → None [source]

使用Spark的现有缓存层将此RDD标记为本地检查点。

此方法适用于希望截断RDD血统的用户,同时跳过在可靠分布式文件系统中复制物化数据的昂贵步骤。这对于需要定期截断长血统的RDD(例如GraphX)非常有用。

本地检查点以牺牲容错性为代价来提高性能。特别是,检查点的数据被写入执行器的临时本地存储,而不是写入可靠的、容错的存储。其结果是,如果在计算过程中执行器发生故障,检查点的数据可能不再可访问,导致作业无法恢复的失败。

这不适用于动态分配,动态分配会移除执行器及其缓存的块。如果你必须同时使用这两个功能,建议将 spark.dynamicAllocation.cachedExecutorIdleTimeout 设置为一个较高的值。

通过 SparkContext.setCheckpointDir() 设置的检查点目录未被使用。

新增于版本 2.2.0。

示例

>>> rdd = sc.range(5)
>>> rdd.isLocallyCheckpointed()
False
>>> rdd.localCheckpoint()
>>> rdd.isLocallyCheckpointed()
True