觸發:
執行全麵刷新所有的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))
' ' '
欣賞任何這一問題的見解。謝謝。
@Raeger茶:
錯誤消息表明,發現一個模式改變而改變列映射模式。好像你正試圖改變默認的列映射模式(位置)“名字”模式,地圖列基於他們的名字,而不是他們的立場。
當改變列映射模式時,您需要確保表的模式是相同的。在你的情況中,舊的模式隻有一個列(沒有名字),而新模式有三列名稱。這就是為什麼你要改變錯誤的模式。
為了解決這個問題,你可以嚐試以下選項之一:
一旦你有了固定的模式問題,您可以嚐試再次運行“全麵刷新所有”。