3
我创建了具有数字列(如双列和字符串列)的配置单元表。我的文件包含数字和字符串列的一些NULL值。当我尝试将一个文件加载到此表中时,数值列的NULL值被替换为file中的'\ N'。我知道这是处理数值类型列的空值的hive属性,但我想阻止它或是否存在任何方式,我可以将NULL更改为其他内容而不是'\ N'。将NULL数据转换为' N'以用于配置单元中的数字列。
我创建了具有数字列(如双列和字符串列)的配置单元表。我的文件包含数字和字符串列的一些NULL值。当我尝试将一个文件加载到此表中时,数值列的NULL值被替换为file中的'\ N'。我知道这是处理数值类型列的空值的hive属性,但我想阻止它或是否存在任何方式,我可以将NULL更改为其他内容而不是'\ N'。将NULL数据转换为' N'以用于配置单元中的数字列。
默认情况下NULL
值写入数据文件中为\N
和\N
,在查询数据时数据文件被解释为NULL
。
这可以通过使用TBLPROPERTIES('serialization.null.format'=...)
来覆盖。
TBLPROPERTIES('serialization.null.format'='')
意味着:
该属性可以被声明为表创建的一部分
create table mytable (...)
tblproperties('serialization.null.format'='')
;
并且可以稍后改变
alter table mytable set tblproperties('serialization.null.format'='')
;