当创建一个增量表saveAsTable默认的nullability列真正的(列可以包含null值)。这是预期行为。
在某些情况下,您可能想要创建一套三角洲的nullability列的表假(列不能包含空值)。
指令
使用创建表命令来创建表和定义的列不能包含空值通过使用非空。
例如,这个示例代码创建了一个三角洲表有两个整数列。列命名零可以包含null值,但列命名呢null1不能包含空值,因为它创建了非空。
% sql CREATE TABLE <表名> (num Int, Int num1 NOT NULL)使用三角洲
现在我们已经三角洲表定义我们可以创建一个示例DataFrame和使用saveAsTable写信给三角洲表。
此示例代码生成示例数据和配置模式isNullable属性设置为真正的为字段全国矿工工会和假字段num1。这个样例数据存储在一个新创建的DataFrame。
最后一步,saveAsTable用于将数据写入我们先前创建的表。
进口org.apache.spark.sql.types。_ val数据= Seq(行(1、3)、行(5、7))= StructType val模式(列表(StructField (“num”, IntegerType,真的),StructField (“num1”, IntegerType假)))val df =火花。createDataFrame (spark.sparkContext.parallelize(数据),模式)df.write.mode .format(“覆盖”)(“δ”).saveAsTable(“<表名称>”)
如果你读表模式,全国矿工工会允许空值num1不允许空值。
根|——num:整数(nullable = true) |——num1:整数(nullable = false)
举个例子,如果你跳过表创建,就试着写saveAsTable的数据表,然后阅读模式,所有列被定义为可空。