hvie中的‘不等于’会将null错误过滤

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值替换为统一的文本。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Lyx_____h/article/details/105101800