Hive踩过的坑-Hive空值、NULL判断
- 95 次检阅

最近经常在Hive上跑oralce 语句,虽然Hive执行语句大致相同,可是也有一些大坑..比如就是空值和null判断

在oralce 判断是否为空直接可以 xxx is null / xxx is not null;

而在Hive上是这种方式是不对的。得到的结果一定是错的。

hive中空值判断基本分两种

1.NULL 与 \N(当字段为NULL时,hdfs文件用\N表示)

Hive在底层数据中如何保存和标识NULL,是由 alter table xxx(数据表名) set serdeproperties('serialization.null.format' = '\N'); 参数控制的

比如:当字段=''时,存储为null,可利用命令

alter table xxx(数据表名) set serdeproperties('serialization.null.format' = '');

实现遇到''用null替换

2.'' 与 length(xx)=0

''表示的是字段内容不为null且为空字符串,此时用 xxx is null 是无法查询这种值的,必须通过 xxx='' 或者 length(a)=0 查询 ,所以这里就是坑了,当内容为空是,用 xxx is null 是没有用哒

 

分享到:

这篇文章还没有评论

发表评论