我有一个交互式集群,其中连接的笔记本必须能够读取/写入Unity Catalog以及DBFS和ADLS中的数据。我已将此群集设置为
USER_ISOLATION
(共享模式)。当使用spark从dbfs或abfss读取数据时,我遇到了一个错误:
SparkConnectGrpcException: (org.apache.spark.SparkSecurityException) [INSUFFICIENT_PERMISSIONS]
Insufficient privileges: User does not have permission SELECT on any file.
I've granted permissions to my user
仍然会出现这个错误。
resource "databricks_sql_permissions" "any_file" {
any_file = true
catalog = true
privilege_assignments {
principal = "..."
privileges = ["SELECT"]
}
}
Documentations says
:
无法使用R、RDD API或直接从云存储读取数据的客户端,如DBUtils。
我能假设这是的根本原因吗
INSUFFICIENT_PERMISSIONS
错误
尽管我理解阻止访问文件系统的决定背后的原因,但在迁移到统一目录的过程中,我们仍然需要同时访问这两者。
群集配置:
{
"num_workers": 1,
"cluster_name": "...",
"spark_version": "14.0.x-scala2.12",
"spark_conf": {
"spark.hadoop.fs.azure.account.oauth2.client.endpoint": "...",
"spark.hadoop.fs.azure.account.auth.type": "...",
"spark.hadoop.fs.azure.account.oauth.provider.type": "...",
"spark.hadoop.fs.azure.account.oauth2.client.id": "...",
"spark.hadoop.fs.azure.account.oauth2.client.secret": "..."
},
"node_type_id": "...",
"driver_node_type_id": "...",
"ssh_public_keys": [],
"spark_env_vars": {
"cluster_type": "all-purpose"
},
"init_scripts": [],
"enable_local_disk_encryption": false,
"data_security_mode": "USER_ISOLATION",
"cluster_id": "..."
}
有什么变通办法、解决方案或不同的方法吗?
将群集配置更改为
SINGLE_USER
这不是我们目前想要的,因为多个用户/笔记本正在共享相同的设置。