如何在 Databricks(社区版)上本地保存 Great_Expectations 套件

How to Save Great_Expectations suite locally on Databricks (Community Edition)

我可以将 Great_Expectations 套件保存到我的 Databricks Community Edition 上的 tmp 文件夹,如下所示:

ge_partdf.save_expectation_suite('/tmp/myexpectation_suite.json',discard_failed_expectations=False)

但问题是,当我重新启动集群时,json 文件在 tmp 文件夹中变长了。我猜这是因为驻留在 tmp 文件夹中的文件是临时的。但是,如果我尝试将其保存在 Databricks 上存在的文件夹中,例如 /FileStore/tables,我会收到错误消息:

FileNotFoundError: [Errno 2] No such file or directory: '/FileStore/tables/myexpectation_suite.json'

谁能告诉我如何在 Databricks 上进行本地保存。

save_expectation_suite 函数使用本地 Python API 并将数据存储在本地磁盘上,而不是 DBFS - 这就是文件消失的原因。

如果您使用完整的 Databricks(在 AWS 或 Azure 上),那么您只需要在路径前添加 /dbfs,文件将通过所谓的 DBFS 融合存储在 DBFS 上(参见 docs).

在社区版中,您需要继续使用本地磁盘,然后使用dbutils.fs.cp将文件从本地磁盘复制到 DBFS。

根据评论更新可见性:

要引用本地文件,您需要将 file:// 附加到路径。所以我们有两种情况:

  1. 将生成的套件从本地磁盘复制到 DBFS:
dbutils.fs.cp('file:///tmp/myexpectation_suite.json', "/FileStore/tables")
  1. 将套件从 DBFS 复制到本地磁盘以加载它:
dbutils.fs.cp("/FileStore/tables/myexpectation_suite.json", 
  'file:///tmp/myexpectation_suite.json')