关于sqoop导入数据到hive数据库当中,表中数据为空倒入hive当中的处理

Posted gxgd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于sqoop导入数据到hive数据库当中,表中数据为空倒入hive当中的处理相关的知识,希望对你有一定的参考价值。

今天在hive数据库当中查询一张表,查询数据为空的值,但是死活就是匹配不到:

查询语句如下:

select * from loan_repayment_detail  where trim(fact_return_date) is null
本来想着是不是因为前面有空格的原因,但是去掉了空格之后还是不可以。

技术分享图片

我直接插寻这个字段是有值的啊,也是为null,为啥就不可以啊。原来真正的问题的源头是从我们使用sqoop导入数据开始的。在sqoop导入数据的时候如果不对null做处理,他会将原来为null的值导入的时候

转化为null的字符串,不是真正意义上面的null值。所以当我们使用is null 的时候就匹配不到数据。这才是问题的关键:

然后我执行了一下下面这个语句就可以了:

技术分享图片

所以我们在通过sqoop导入数据的时候,需要加上

--null-string ‘\\N‘ 

--null-non-string ‘\\N‘ 

这个是因为在hive里面的,null值是用N来表示的,所以需要将原理啊的null的字符串进行转换之后,才能匹配到真正意义上的null值,而不是字符串类型的null值。

至此问题得到了解决。

 


以上是关于关于sqoop导入数据到hive数据库当中,表中数据为空倒入hive当中的处理的主要内容,如果未能解决你的问题,请参考以下文章

sqoop 导出hive数据到MySQL数据库当中

Sqoop hive导出到mysql[转]

Sqoop入门笔记-----架构以及应用介绍

第3节 sqoop:4sqoop的数据导入之导入数据到hdfs和导入数据到hive表

hive数据导入Sqoop工具

大数据高级开发工程师——大数据相关工具之一 Sqoop