我创建了一个包含数字列(例如双列和字符串列)的配置单元表。我的文件包含一些数字和字符串列的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'='')
;

09-11 18:04
查看更多