我有一个 Azure 数据湖存储第 2 代帐户,启用了分层命名空间。我为该帐户生成了一个 SAS 令牌,并将数据接收到文件共享(文件服务)中的一个文件夹中。现在我想通过 Azure Databricks 和 python 访问这些文件。但是,Azure Databricks 似乎只能访问文件系统(在 gen1 中称为 Blob 容器),而不能访问文件共享。我也未能为文件系统生成 SAS 令牌。
我希望有一个可以生成 SAS 令牌并提供给我的客户的存储实例,并使用 python 从 azure databricks 访问它。它是文件系统、文件共享、ADLS gen2 还是 gen1 并不重要,只要它以某种方式工作即可。
我使用以下内容从数据块访问文件系统:
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": "my_client_id",
"fs.azure.account.oauth2.client.secret": "my_client_secret",
"fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/"+"My_tenant_id" +"/oauth2/token",
"fs.azure.createRemoteFileSystemDuringInitialization": "true"}
dbutils.fs.mount(source = "abfss://"+"my_file_system"+"@"+"my_storage_account"+".dfs.core.windows.net/MyFolder",
mount_point = "/mnt/my_mount",
extra_configs = configs)
工作正常,但我不能让它访问文件共享。我有一个带有如下连接字符串的 SAS 令牌:
connection_string = (
'BlobEndpoint=https://<my_storage>.blob.core.windows.net/;'+
'QueueEndpoint=https://<my_storage>.queue.core.windows.net/;'+
'FileEndpoint=https://<my_storage>.file.core.windows.net/;'+
'TableEndpoint=https://<my_storage>.table.core.windows.net/;'+
'SharedAccessSignature=sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-09-26T17:12:38Z&st=2019-08-26T09:12:38Z&spr=https&sig=<my_sig>'
)
我设法使用它来将内容上传到文件共享,而不是文件系统。是否有任何类型的 Azure 存储可以通过 SAS 令牌和 azure databricks 访问?