gpt4 book ai didi

azure - 通过 databricks 从 Azure Data Lake 敏感存储访问文件

转载 作者:行者123 更新时间:2023-12-02 08:16:11 25 4
gpt4 key购买 nike

我通过以下方法访问普通存储中的文件:

input_path = "my_path"
file= "file.mp3"
path = os.path.join(path_data, file)
full_path = '/dbfs/' + path

with open(full_path, mode='rb') as file: # b is important -> binary
fileContent = file.read()

我无法在敏感存储中使用相同的方法

我知道敏感存储还有另一种访问数据的方式

path_sensitive_storage = 'mypath_sensitive'

如果我使用 Spark,它可以完美工作,但我感兴趣的是不使用 Spark 读取而是打开文件

input_df = (spark.read
.format("binaryFile")
.option("header", "true")
.option("encoding", "UTF-8")
.csv(full_path)
)

有办法做到这一点吗?

最佳答案

由于您使用 Azure Data Lake 作为源,因此需要使用 OAuth 方法将容器挂载在 Databricks DBFS 中。容器安装完毕后,就可以使用它了。

使用下面的代码来挂载容器。

configs = {"fs.azure.account.auth.type": "OAuth",
"fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id": "ba219eb4-0250-4780-8bd3-d7f3420dab6d",
"fs.azure.account.oauth2.client.secret": "0wP8Q~qWUwGSFrjyByvwK-.HjrHx2EEvG06X9cmy",
"fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/token",
"fs.azure.createRemoteFileSystemDuringInitialization": "true"}

dbutils.fs.mount(
source = "abfss://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5d2e3c302d31386c6c1d28292f3231343e2e29322f3c3a386c6c73393b2e733e322f38732a343339322a2e73333829" rel="noreferrer noopener nofollow">[email protected]</a>/",
mount_point = "/mnt/sampledata11",
extra_configs = configs)

安装后,您可以使用以下代码列出安装位置中的文件。

dbutils.fs.ls("/mnt/sampledata11/")

最后使用with open语句读取文件

with open("/dbfs/mnt/sampledata11/movies.csv", mode='rb') as file: # b is important -> binary
fileContent = file.read()
print(fileContent)

检查下图以了解完整的实现和输出。

enter image description here

关于azure - 通过 databricks 从 Azure Data Lake 敏感存储访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73483366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com