你好,,我工作在項目中使用SQL數據倉庫連接器內置磚(https://docs.m.eheci.com/data/data-sources/azure/synapse-analytics.html)。從那裏,我想提取信息從邏輯計劃/邏輯關係將幫助我識別表和數據庫(或至少JDBC URL)被用於查詢數據。
我相信我需要從BaseRelation SqlDWRelation提取後的關係從邏輯計劃所示。
val df = spark.read.format (com.databricks.spark.sqldw) .option (“url”, sqlDwUrl) .option (“tempDir”, tempDir) .option .option (“forwardSparkAzureStorageCredentials”、“true”)(“數據表”,表名).load () val logicalPlan = df.queryExecution。邏輯val logicalRelation = logicalPlan。asInstanceOf LogicalRelation val sqlBaseRelation = logicalRelation.relation
然而,這樣做後,我試著投sqlBaseRelation。asInstanceOf SqlDWRelation”和它導致一個錯誤看起來像:
無法訪問對象SqlDWRelation包sqldw com.databricks.spark.sqldw在包
編輯:上麵的錯誤是有意義的,因為它是一個私人類
當看著jar為SQL DW連接器提供了在工作區中,我可以看到SqlDWRelation(編輯公共)私人類但它不是可以通過選項卡/內自動完成數據磚筆記本。
有人曾經試圖使用SqlDWRelation和提取信息的表和數據庫的名稱給logicalrelation ?謝謝你的指導!
在我的環境中,我使用:
嗨@Will約翰遜,
如果@Werner Stinckens的回答幫助你解決這個問題,你可以選擇它作為最好的回應嗎?它將有助於移動到頂部。