如何保存对Azure Data Lake或Blob Store的巨大期望



我正试图用以下代码行将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,或者让我知道期望保存到哪里,那将是一个很棒的

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

保存后,第二步是将其上传到ADLS。在Databricks上,您可以使用dbutils.fs.cp将文件放到DBFS或ADLS上。如果您不是在Databricks上运行,那么您可以使用azure存储文件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))

最新更新