三角洲湖模式驗證
三角洲湖自動驗證的模式DataFrame寫入表的兼容模式。三角洲湖使用以下規則來確定是否寫從DataFrame表兼容:
所有DataFrame列必須存在於目標表。如果有列DataFrame表中不存在,會拋出一個異常。列在表而不是DataFrame設置為null。
DataFrame列的數據類型必須匹配目標表的列數據類型。如果它們不匹配,會拋出一個異常。
DataFrame列名不能隻有情況不同。這意味著您不能列如“Foo”和“Foo”定義在相同的表。雖然您可以使用火花,以防敏感或不敏感(默認)模式,拚花是大小寫敏感的,當存儲和返回列信息。三角洲湖case-preserving但不敏感當存儲模式,這一限製,以避免潛在的錯誤,數據損壞或損失的問題。
三角洲湖支持DDL顯式地添加新列和自動更新模式的能力。
如果您指定其他選項,例如partitionBy
,結合附加模式,三角洲湖驗證他們為任何不匹配匹配和拋出一個錯誤。當partitionBy
不存在,添加自動跟隨現有數據的分區。
請注意
插入
語法提供了模式的實施和支持模式演化。如果一個列的數據類型不能安全地把你三角洲湖表的數據類型,則會拋出運行時異常。如果模式演化啟用新列可以作為最後一列你的存在模式(或嵌套列)模式演變。