hive空值、NULL值判断

首先我们要明白:在hive中 空值和NULL是不等价的
1.一种标示为NULL

column1column2
dsfNULL
DFSDFSddfff

2.一种没有标示 直接为空值

column1column2
dfs
fdfsfd

如果是第一种,在表中显示为NULL,则在底层数据中,保存的可能为NULL或\n
此时 通过语句column2 is null 即可查询为NULL的字段

如果为第二种,在表中没有值,其表示的为字段不为null且为空字符串的值
此时 要通过column2=" 或者 length(column2) =0

下面补充一个 如何处理hive的NULL值

hive中并没有sql server的isnull()函数 也没有 mysql的ifnull()函数
但它可以用if语句替代
假设有表 column:

产品名称单价售出产品个数
猪肉302
白菜45
油麦菜2NULL
玉米31
在hive里面计算每个产品分别卖了多少钱
在hive中可以这么写(暂时忽略中英文):
select
	产品名称
	,单价*if(售出产品个数 is null, 0, 售出产品个数) 总售价
from table

其中

if(售出产品个数 is null, 0, 售出产品个数)

表示的是 如果售出产品个数为NULL,则置其为0, 否则 置其为原值。
同理 如果处理hive的空值 可以在if语句中用 length()来作为判断条件

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值