取消
顯示的結果
而不是尋找
你的意思是:

DeltaColumnMappingUnsupportedException當執行的全部刷新所有的DLT管道

429957年
新的因素

觸發:

執行全麵刷新所有的DLT管道(新的或現有的)。現有的DLT表事先已經存在。

問題:

得到錯誤“DeltaColumnMappingUnsupportedException”在“設置表”階段。

“‘com.databricks.sql.transaction.tahoe.DeltaColumnMappingUnsupportedException:

模式變化檢測:

舊模式:

新模式:

|——字段1:字符串(nullable = true)

|——字段2:字符串(nullable = true)

|——字段3:時間戳(nullable = true)

模式變化期間是不允許修改的列映射模式。

' ' '

設置:

DLT管道配置為運行python筆記本包含這樣的:

' ' '

@dlt.table (

評論= "原始表”,

table_properties = {

“三角洲。minReaderVersion”:“2”,

“三角洲。minWriterVersion”:“5”,

“delta.columnMapping。模式":"名稱",

},

)

def raw_table ():

返回(spark.read.format (file_type)

.option (“inferSchema”,假)

.option(“標題”,真的)

.load (some_file_location))

' ' '

欣賞任何這一問題的見解。謝謝。

1回複1

匿名
不適用

@Raeger茶:

錯誤消息表明,發現一個模式改變而改變列映射模式。好像你正試圖改變默認的列映射模式(位置)“名字”模式,地圖列基於他們的名字,而不是他們的立場。

當改變列映射模式時,您需要確保表的模式是相同的。在你的情況中,舊的模式隻有一個列(沒有名字),而新模式有三列名稱。這就是為什麼你要改變錯誤的模式。

為了解決這個問題,你可以嚐試以下選項之一:

  1. 使用默認的列映射模式(位置)而不是“名字”模式。這種方式,你不需要擔心模式變化而變化的列映射模式。
  2. 創建一個新的DLT管道與所需的模式和列映射模式。這將避免衝突與現有表模式。
  3. 如果你需要修改現有的表模式,可以通過運行在一個SQL ALTER table命令筆記本。然而,你需要確保你不要改變模式而改變列映射模式。

一旦你有了固定的模式問題,您可以嚐試再次運行“全麵刷新所有”。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map