(17) Hive null的用法
Hive中有种假NULL,它看起来和NULL一摸一样,但是实际却不是NULL。空值NULL在底层默认是用'\N'来存储的,Hive中'\'是转义字符,需要对'\'进行一次转义,所以变成'\\N'。
如果实际想存储'\N',那么实际查询出来的也是NULL而不是'\N'。
修改默认的NULL表示:
alter table test SET SERDEPROPERTIES('serialization.null.format' = 'a');
1、数据类型。
int与string的存储。null默认的存储都是\N。
string的数据如果为""。存储才是""。
另外往int类型的字段插入数据“”.结果还是\N
select * from odata_wls.wls_m_lottery
where extra ='';
2、查询的时候。对于int就是可以使用is null。
对于string类型。is null 查出来的是\N的数据;对于条件 ='',查询出来的数据是""的。
可以看出:判断是根据实际的存储判断所得出。
因此,在开发过程中如果需要对空进行判断,一定得知道存储的是哪种数据。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29050044/viewspace-2127494/
,如需转载,请注明出处,否则将追究法律责任。