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