1.问题描述 最近在hive中计算时发现部分存在null的数据会被错误过滤掉,造成了数据结果错误。 2.查找原因 根据存储规则我们可以知道,int与string类型数据存储,null默认存储为 \N 。 一般在对null值进行判断时我们会用到 is null 或着 is not null 。这里where虽然过滤的是某个不为null的值,但是在计算的同时也会把null值给过滤掉,最终造成了存在null的记录丢失。 3.解决办法 where 条件再对数据进行<>过滤时,可以利用if条件提前做一次判断 if(name is null,‘未知’,name),将null值替换为统一的文本。