错误:检测到fs.azure.account.key的配置值无效

voase2hg  于 2023-03-24  发布在  其他
关注(0)|答案(2)|浏览(159)

我正在使用Azure Databricks在Azure Blob存储中使用ADLS Gen2创建增量表,但在最后一行收到错误“无法初始化配置检测到fs.azure.account.key的配置值无效

%scala
spark.conf.set(
    "fs.azure.account.oauth2.client.secret",
    "<storage-account-access-key>")
friends = spark.read.csv('myfile/fakefriends-header.csv',
   inferSchema = True, header = True)
friends.write.format("delta").mode('overwrite')\
   .save("abfss://tempfile@tempaccount.dfs.core.windows.net/myfile/friends_new")

请帮助我,我如何才能避免这个错误

e0bqpujr

e0bqpujr1#

简短的回答-你不能使用存储帐户访问密钥来访问使用abfss协议的数据。如果你想使用abfss,你需要提供更多的配置选项-这一切都在文档中描述。

spark.conf.set(
  "fs.azure.account.auth.type.<storage-account-name>.dfs.core.windows.net", 
  "OAuth")
spark.conf.set(
  "fs.azure.account.oauth.provider.type.<storage-account-name>.dfs.core.windows.net", 
  "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set(
  "fs.azure.account.oauth2.client.id.<storage-account-name>.dfs.core.windows.net", 
  "<application-id>")
spark.conf.set(
  "fs.azure.account.oauth2.client.secret.<storage-account-name>.dfs.core.windows.net", 
  dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"))
spark.conf.set(
  "fs.azure.account.oauth2.client.endpoint.<storage-account-name>.dfs.core.windows.net", 
  "https://login.microsoftonline.com/<directory-id>/oauth2/token")

存储访问密钥只能在使用wasbs时使用,但不建议使用ADLSGen 2。
P.S.如果您有访问该存储帐户的权限,您也可以使用passthrough cluster

ljsrvy3e

ljsrvy3e2#

但是在你的笔记本上试试下面的代码

spark._jsc.hadoopConfiguration().set("fs.azure.account.key.<account name>.dfs.core.windows.net",'<account key>')

相关问题