你好,
我一直試圖在Azure上創建外部表數據磚與下麵的語句。
df.write。partitionBy(“年”、“月”、“日”).format (org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat) .option(“路徑”,路徑).mode .saveAsTable(“覆蓋”)(“test.table_test”)
路徑上麵的路徑ADLS存儲賬戶。
作品和表的代碼創建指向adlas存儲容器,但我得到以下異常
analysisexception: org.apache.hadoop.hive.ql.metadata。hiveexception: metaexception(信息:有例外:shaded.databricks.azurebfs.org.apache.hadoop.fs.azurebfs.contracts.exceptions.keyproviderexception未能初始化配置
我也試著建立在集群級別配置建議
我配置集群級別配置如下
fs.azure.account.oauth2.client.endpoint。<存儲賬戶> .dfs.core.windows.nethttps://login.microsoftonline.com/ <鍵> / oauth2 /令牌
fs.azure.account.auth.type。<存儲賬戶> .dfs.core.windows.net OAuth
fs.azure.account.oauth2.client.id。<存儲賬戶> .dfs.core.windows.net ClientId
fs.azure.account.oauth.provider.type。<存儲賬戶> .dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
fs.azure.account.oauth2.client.secret。<存儲賬戶> .dfs.core.windows.net{{秘密/範圍/ Secret_Key_Name}}
但它仍然不工作,拋出的異常。
可以人可能遇到和解決這個問題早些時候指引我上麵的如果我錯過任何配置,可以上述原因我excpetion雖然數據寫入adls和表創建指向相同的數據。
謝謝
錯誤是談論蜂巢metastore這意味著你仍然沒有連接到外部的位置。
你能創建一個表在外部位置的(假設你有一個json文件在一個blob文件夾位置)?
#設置變量catalog_name = test_catalog schema_name = test_schema catalog_container = <目錄容器字符串> storage_account = <存儲賬戶字符串> blob_path = f”abfss: / / {catalog_container} @ {storage_account}.dfs.core.windows.net/ <文件夾路徑>“#創建目錄,如果不存在火花。sql (f“創建目錄如果不存在{catalog_name}管理位置的abfss: / / {catalog_container} @ {storage_account}.dfs.core.windows.net/'”) #創建模式,如果不存在火花。sql (f“創建模式如果不存在{catalog_name}。{schema_name}”) #文件讀入Dataframe df = spark.read.format (json) .load (blob_path) df.display ()