如何在 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://
附加到路径。所以我们有两种情况:
- 将生成的套件从本地磁盘复制到 DBFS:
dbutils.fs.cp('file:///tmp/myexpectation_suite.json', "/FileStore/tables")
- 将套件从 DBFS 复制到本地磁盘以加载它:
dbutils.fs.cp("/FileStore/tables/myexpectation_suite.json",
'file:///tmp/myexpectation_suite.json')
我可以将 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://
附加到路径。所以我们有两种情况:
- 将生成的套件从本地磁盘复制到 DBFS:
dbutils.fs.cp('file:///tmp/myexpectation_suite.json', "/FileStore/tables")
- 将套件从 DBFS 复制到本地磁盘以加载它:
dbutils.fs.cp("/FileStore/tables/myexpectation_suite.json",
'file:///tmp/myexpectation_suite.json')