我可以将 Great_Expectations 套件保存到我的 Databricks Community Edition 上的 tmp 文件夹,如下所示:
ge_partdf.save_expectation_suite('/tmp/myexpectation_suite.json',discard_failed_expectations=False)
但问题是,当我重新启动集群时,tmp 文件夹中的 json 文件变长了。我猜这是因为驻留在 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 fuse 存储在 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')
关于apache-spark - 如何在 Databricks(社区版)上本地保存 Great_Expectations 套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70395651/