使用服务主体从 ADLS Gen2 读取文件时出现错误,检测到 fs.azure.account.key 的配置值无效

Getting error Invalid configuration value detected for fs.azure.account.key while reading file from ADLS Gen2 using service principal

我在使用服务主体从 ADLS Gen2 读取文件时遇到错误。

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": "<your-service-client-id>",
           "fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope 
           = "<scope-name>", key = "<key-name>"),
           "fs.azure.account.oauth2.client.endpoint": 
           "https://login.microsoftonline.com/<your-directory-id>/oauth2/token"}

以下用于读取文件的代码:

df=spark.read.csv('abfss:
//tempfile@tempaccount.dfs.core.windows.net/temp.csv')

出现以下错误:

Invalid configuration value detected for fs.azure.account.key

您可以尝试以下方法:

而不是这一行:

"fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>"),

尝试如下使用:

"fs.azure.account.oauth2.client.secret": "<key-name>",

希望对您有所帮助。


如果这回答了您的问题,请点击“标记为答案”并点击 "Up-Vote"。而且,如果您有任何进一步的疑问,请告诉我们。

定义配置后,您还需要进行设置。

[spark.conf.set(key, value) for (key, value) in configs.items()]