Hive踩过的坑-Hive空值、NULL判断
本文最后更新于 1674 天前,其中的信息可能已经有所发展或是发生改变。

最近经常在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 是没有用哒


然后解决了这个问题之后呢,也会出现hive上面是显示null,而把数据导出后变成\N

我自己的做法是把他做nvl操作,显示为”这样oracle的话也是为null/空….(前提是字段比较少,如果字段比较多的话,还是修改底层数据的保存标识吧)


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇