使用突触笔记本中的多个链接服务在一个蓝色gen2存储帐户中读取/写入数据。我们不能使用单一链接服务读取,因为我们有多个SPN,它可以访问所有的路径。
创建一个指向gen2存储的多个链接服务,使用不同的SPN1,SPN2
spark.conf.set('spark.storage.synapse.linkedServiceName',spark.conf.set('fs.azure.account.oauth.provider.type','com.microsoft.azure.synapse.tokenlibrary.LinkedServiceBasedTokenProvider') linked_service_name = 'ln_spn1_path_1‘ln_spn1_path_1 linked_service_name)
如果以上两个逗号在同一个突触笔记本中运行,那么我们将得到下面的错误,以后再运行。
Py4JJavaError:调用z:mssparkutils.fs.ls时出错。:java.nio.file.AccessDeniedException:操作失败:“此请求未被授权使用此权限执行此操作。”,403,GET,AuthorizationPermissionMismatch,“此请求未被授权使用此权限执行此操作。”
我们能在同一个笔记本中读取不同链接服务的数据吗?
发布于 2021-10-13 11:09:54
更新:我已经在azure gen2存储帐户上测试了多路径,使用突触笔记本中的多个链接服务。
链接服务: ADLSGen2_chepra,笔记本名为Linked_service_name
链接服务: AzureDataLakeStorage_chepragen2,笔记本名为Linked_service_name
注意:存储Blob数据贡献者:用于向Blob存储资源授予读/写/删除权限。
如果您没有将“”分配给其他synapse用户,由于存储帐户的权限不足,他们将无法访问ADLS gen2中的数据。
如果他们试图访问ADLS gen2中的数据,而没有存储帐户上的“”角色,他们将收到以下错误消息:
Py4JJavaError: An error occurred while calling z:mssparkutils.fs.ls. : java.nio.file.AccessDeniedException: Operation failed: "This request is not authorized to perform this operation using this permission.", 403
参考资料:授予工作区托管标识的权限.
https://stackoverflow.com/questions/69553069
复制相似问题