我创建了一个包含数字列(例如双列和字符串列)的配置单元表。我的文件包含一些数字和字符串列的NULL值。当我尝试将文件加载到该表中时,数字列的NULL值被file中的'\ N'替换。我知道这是蜂巢属性,可以处理数字类型列的空值,但是我想防止它出现或存在我可以将NULL改为“ \ N”以外的任何方式。
最佳答案
默认情况下,将NULL
值写为数据文件中的\N
,并且在查询数据时将数据文件中的\N
解释为NULL
。
可以使用TBLPROPERTIES('serialization.null.format'=...)
覆盖
例如。TBLPROPERTIES('serialization.null.format'='')
含义如下:
查询表时,数据文件中的空字段将被视为NULL。
在表中插入行时,NULL值将作为空字段写入数据文件
该属性可以声明为表创建的一部分
create table mytable (...)
tblproperties('serialization.null.format'='')
;
以后可以更改
alter table mytable set tblproperties('serialization.null.format'='')
;