微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何对 Azure Data Lake 或 Blob Store 寄予厚望

如何解决如何对 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-storage-file-datalake Python package 将文件上传到 ADLS(请参阅 its docs for details),如下所示:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。