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

标签 apache-spark databricks great-expectations databricks-community-edition

我可以将 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:// 附加到路径。所以我们有两种情况:

  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')

关于apache-spark - 如何在 Databricks(社区版)上本地保存 Great_Expectations 套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70395651/

相关文章:

scala - 使用 enableHiveSupport 创建临时 SparkSession

apache-spark - Spark Parquet 分区 : Large number of files

hadoop - 带有序列文件的 Spark RDD take()

databricks - 无法使用 Databricks 列出 Azure 存储 Gen 2 文件

python - Azure 和 Databricks 寄予厚望

python - 检查 Great Expectations 中的列名和列类型

python - 如何将数据框转换为 great_expectations 数据集?

java - 如何在 Mapreduce 中生成 UUID?

python - 如何在DataBricks中导入 `displayHTML`?

apache-spark - 将数百万个小文件从 Azure Data Lake Storage 加载到 Databricks