三角洲湖模式驗證

三角洲湖自動驗證的模式DataFrame寫入表的兼容模式。三角洲湖使用以下規則來確定是否寫從DataFrame表兼容:

  • 所有DataFrame列必須存在於目標表。如果有列DataFrame表中不存在,會拋出一個異常。列在表而不是DataFrame設置為null。

  • DataFrame列的數據類型必須匹配目標表的列數據類型。如果它們不匹配,會拋出一個異常。

  • DataFrame列名不能隻有情況不同。這意味著您不能列如“Foo”和“Foo”定義在相同的表。雖然您可以使用火花,以防敏感或不敏感(默認)模式,拚花是大小寫敏感的,當存儲和返回列信息。三角洲湖case-preserving但不敏感當存儲模式,這一限製,以避免潛在的錯誤,數據損壞或損失的問題。

三角洲湖支持DDL顯式地添加新列和自動更新模式的能力。

如果您指定其他選項,例如partitionBy,結合附加模式,三角洲湖驗證他們為任何不匹配匹配和拋出一個錯誤。當partitionBy不存在,添加自動跟隨現有數據的分區。

請注意

插入語法提供了模式的實施和支持模式演化。如果一個列的數據類型不能安全地把你三角洲湖表的數據類型,則會拋出運行時異常。如果模式演化啟用新列可以作為最後一列你的存在模式(或嵌套列)模式演變。

三角洲湖合並模式驗證

合並自動驗證的模式由插入和更新表達式生成的數據表的兼容模式。它使用以下規則來確定合並操作兼容:

  • 更新插入操作,指定的目標列必須存在於目標三角洲表。

  • updateAllinsertAll行動,源數據集必須有目標三角洲表的所有列。源數據集可以有額外的列,他們將被忽略。

  • 為所有操作,如果數據類型表達式生成的生產目標列不同於目標三角洲表中相應的列,合並試圖把他們的類型表。

看到自動模式演化為三角洲湖合並