zoukankan      html  css  js  c++  java
  • 关于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值。

    至此问题得到了解决。

  • 相关阅读:
    linux(不会考特别难,牢记下面即可)
    ajax
    Javascript 和 Jquery
    开发环境及配置
    网络协议考点
    面向对象考点
    会话控制
    文件操作
    正则表达式
    自定义函数和内部函数
  • 原文地址:https://www.cnblogs.com/gxgd/p/9835642.html
Copyright © 2011-2022 走看看