三角洲湖模式验证
三角洲湖自动验证的模式DataFrame写入表的兼容模式。三角洲湖使用以下规则来确定是否写从DataFrame表兼容:
所有DataFrame列必须存在于目标表。如果有列DataFrame表中不存在,会抛出一个异常。列在表而不是DataFrame设置为null。
DataFrame列的数据类型必须匹配目标表的列数据类型。如果它们不匹配,会抛出一个异常。
DataFrame列名不能只有情况不同。这意味着您不能列如“Foo”和“Foo”定义在相同的表。虽然您可以使用火花,以防敏感或不敏感(默认)模式,拼花是大小写敏感的,当存储和返回列信息。三角洲湖case-preserving但不敏感当存储模式,这一限制,以避免潜在的错误,数据损坏或损失的问题。
三角洲湖支持DDL显式地添加新列和自动更新模式的能力。
如果您指定其他选项,例如partitionBy
,结合附加模式,三角洲湖验证他们为任何不匹配匹配和抛出一个错误。当partitionBy
不存在,添加自动跟随现有数据的分区。
请注意
插入
语法提供了模式的实施和支持模式演化。如果一个列的数据类型不能安全地把你三角洲湖表的数据类型,则会抛出运行时异常。如果模式演化启用新列可以作为最后一列你的存在模式(或嵌套列)模式演变。