数据框检查点示例 Pyspark

问题描述

我阅读了有关检查点的文章,它看起来非常适合我的需求,但我找不到有关如何使用它的好示例。
我的问题是:

  1. 我应该指定检查点目录吗?是否可以这样做:

    df.checkpoint()

  2. 是否有任何我应该注意的可选参数?

  3. 是否有认检查点目录,或者我必须指定一个作为认目录?

  4. 当我检查数据框并重用它时 - 它会自动从我们编写文件的目录中读取数据吗?

如果您能与我分享在 pyspark 中使用检查点的示例并进行一些解释,那就太好了。谢谢!

解决方法

您应该将检查点数据帧分配给变量为 checkpoint“返回此数据集的检查点版本”(https://spark.apache.org/docs/3.1.1/api/python/reference/api/pyspark.sql.DataFrame.checkpoint.html)。所以

df = df.checkpoint()

唯一的参数是 eager,它指示您是否希望检查点触发操作并立即保存,默认情况下为 True,您通常希望保持这种方式。

在使用检查点之前,您必须在脚本中的某处使用 SparkContext.setCheckpointDir(dirName) 设置检查点目录。或者,如果您想保存到内存中,您可以使用 localCheckpoint() 而不是 checkpoint() 但这不可靠,并且在出现问题/终止后检查点将丢失(但它应该更快,因为它使用缓存子系统而不是仅写入磁盘)。

是的,它应该是自动读取的,您可以查看历史服务器,并且在块/查询的开头应该有“加载数据”节点(我不记得确切名称)