【问题标题】:How to Save Great_Expectations suite locally on Databricks (Community Edition)如何在 Databricks(社区版)上本地保存 Great_Expectations 套件
【发布时间】:2022-01-20 12:37:08
【问题描述】:

我可以将 Great_Expectations 套件保存到我的 Databricks 社区版的 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 上本地保存。

【问题讨论】:

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


    【解决方案1】:

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

    如果您使用完整的 Databricks(在 AWS 或 Azure 上),那么您只需在路径前添加 /dbfs,文件将通过所谓的 DBFS 熔断器存储在 DBFS 上(请参阅 docs)。

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

    基于 cmets 的可见性更新:

    要引用本地文件,您需要将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')
    

    【讨论】:

    • 嗨,Alex,现在用 dbutils.fs.cp 试试你的建议。要提醒自己如何使用 dbutils.fs.cp .. 除非您对如何使用 dbutils.fs.cp 复制有一个快速的答案? :-)
    • 嗨,Alex,当我尝试使用 dbtuils.fs.cp java.io.FileNotFoundException: /tmp/myexpectation_suite.json 进行复制时出现以下错误,我的语法如下:dbutils.fs.cp('/tmp/myexpectation_suite.json', "/FileStore/tables")
    • 本地文件需要使用file:dbutils.fs.cp('file:///tmp/myexpectation_suite.json', "/FileStore/tables")
    • 好的,使用“文件”成功复制过来。谢谢。但是,当我尝试使用以下语法读取复制的 json 时,出现错误:validation_results = ge_partdf.validate(expectation_suite='dbfs:/FileStore/tables/myexpectation_suite.json', only_return_failures=False) GreatExpectationsError: Unable to load expectation suite: IO error while reading dbfs:/FileStore/tables/myexpectation_suite.jsonvalidation_results = ge_partdf.validate(expectation_suite='dbfs:/FileStore/tables/myexpectation_suite.json', only_return_failures=False)
    • 当您第一次生成该文件时,您正在复制 file:// -> /FileStore。和/FileStore -> file:// 当你需要使用它时
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多