1

我正在尝试使用以下代码行将 great_expectations 'expectation_suite 保存到 Azue ADLS Gen 2 或 Blob 存储。

ge_df.save_expectation_suite('abfss://polybase@mipolybasestagingsbox.dfs.core.windows.net/test/newdata/loggingtableupdate.json')

但是,我收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'abfss://polybase@mipolybasestagingsbox.dfs.core.windows.net/test/newdata/loggingtableupdate.json'

以下是成功的,但是我不知道期望套件保存到哪里:

ge_df.save_expectation_suite('gregs_expectations.json')

如果有人可以让我知道如何保存到 adls gen2 或者让我知道期望保存在哪里,那就太好了

4

1 回答 1

1

远大的期望不能直接保存到 ADLS - 它只是使用仅适用于本地文件的标准 Python 文件 API。最后一个命令将数据存储到驱动程序的当前目录中,但您可以明确设置路径,例如,为/tmp/gregs_expectations.json.

保存后,第二步是将其上传到 ADLS。在 Databricks 上,您可以使用dbutils.fs.cp将文件放到 DBFS 或 ADLS 上。如果您不在 Databricks 上运行,则可以使用azure-storage-file-datalake Python 包将文件上传到 ADLS(有关详细信息,请参阅其文档),如下所示:

from azure.storage.filedatalake import DataLakeFileClient

with open('/tmp/gregs_expectations.json', 'r') as file:
    data = file.read()

file = DataLakeFileClient.from_connection_string("my_connection_string", 
                                                 file_system_name="myfilesystem", 
                                                 file_path="gregs_expectations.json")
file.create_file ()
file.append_data(data, offset=0, length=len(data))
file.flush_data(len(data))
于 2021-07-09T08:45:00.347 回答