你好,
實施後秘密的使用範圍在azure密鑰庫來存儲機密,我麵臨一個問題。
當寫作輸出blob我得到以下錯誤:
shaded.databricks.org.apache.hadoop.fs.azure.AzureException:無法訪問容器分析賬戶[編輯].blob.core.windows.net使用匿名的憑證,憑證中還沒有發現它們的配置。
經過調查,以下是相關配置之前設置的高級配置集群配置:
“spark.hadoop.fs.azure.account.key.y.blob.core.windows.net”、“myStorageAccountKey”
我想找到方法來設置這個檢索後的筆記本級別的秘密秘密範圍:
spark.conf.set (“spark.hadoop.fs.azure.account.key.y.blob.core.windows.net”、“myStorageAccountKey”)
很遺憾這並不工作。
下麵我寫的輸出的一個例子:
df.write.format (com.crealytics.spark.excel) \ .option (“dataAddress”、““% s”!A1“% (sheetName)) \ .option(“頭”,“真正的”)\ .option (“dateFormat”、“yy-mm-d”) \ .option (“timestampFormat”; hh: mm: ss) \ .option (“useHeader”,“真正的”)\ .mode(“追加”)\ .save (“% s / % s”% (output_blob_folder outputName))
你好,謝謝你的建議。
這樣做
spark.conf.set (“fs.azure.account.key。{storage_account} .dfs.core.windows.net”、“{myStorageAccountKey}”)
hadoop配置不起作用。
和建議的@Tharun-Kumar建議配置中硬編碼秘密這是一個大不。
別人提出適當的解決方案堆棧溢出的是添加在同一位置@Tharun-Kumar建議增加,但同時指向秘密範圍:
spark.hadoop.fs.azure.account.key。< account_name > .blob.core.windows.net{{秘密/ < secret-scope-name > / <秘密名字>}}
您需要編輯火花配置通過輸入連接信息的Azure存儲賬戶。
輸入以下:
spark.hadoop.fs.azure.account.key。< STORAGE_ACCOUNT_NAME >。blob.core.windows.net< ACCESS_KEY >
其中< STORAGE_ACCOUNT_NAME >是Azure存儲賬戶名稱、和< ACCESS_KEY >是存儲訪問鍵。
你需要包含這個火花配置並重新啟動集群來克服這個問題。
你好,很遺憾這不是理想的解決方案,因為這涉及到硬編碼在集群的配置的秘密。我張貼在堆棧溢出的問題https://stackoverflow.com/questions/76655569/databricks-not-allowing-to-write-output-to-folder-using..。並得到了想要的答案。
在集群配置中我寫了以下幾點:
spark.hadoop.fs.azure.account.key。< account_name > .blob.core.windows.net{{秘密/ < secret-scope-name > / <秘密名字>}}
請參考文檔連接到Azure數據存儲Gen2湖和Blob存儲Azure磚|微軟學習。這命令,您可以使用設置火花從筆記本配置水平。
service_credential = dbutils.secrets.get(範圍= < secret-scope >”,鍵= < service-credential-key >)
spark.conf.set (“fs.azure.account.auth.type。< storage-account > .dfs.core.windows.net”、“OAuth”)
spark.conf.set (“fs.azure.account.oauth.provider.type。< storage-account > .dfs.core.windows.net”、“org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider”)
spark.conf.set (“fs.azure.account.oauth2.client.id。< storage-account > .dfs.core.windows.net”、“<應用程序id >”)
spark.conf.set (“fs.azure.account.oauth2.client.secret。< storage-account > .dfs.core.windows.net”, service_credential)
spark.conf.set (“fs.azure.account.oauth2.client.endpoint。< storage-account > .dfs.core.windows.net”、“https://login.microsoftonline.com/ < directory-id > / oauth2 /令牌”)
取代