分享

hive表新增字段数据查询

mongol 发表于 2014-11-15 15:51:56 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 10 65381
本帖最后由 mongol 于 2014-11-15 15:53 编辑

情景:    在Oracle数据中表A需要增加列col1,col2......,同时也需要在hive中的表A中增加列col1,col2......

问题:
    在增加完列之后,hive生成数据导出到Oracle里,查询oracle字段都有值,但是hive中查询就没有值,但是生成hive表A的中间表B也有值,只查询hive中的A表时,查询列没有值。


解决办法:
    重新创建hive中表A,以后再查询就有了。


疑问:
    实际上列的值已经存在了,但是为什么查询没有显示呢?重新创建表就好了。



已有(10)人评论

跳转到指定楼层
mongol 发表于 2014-11-15 15:55:02
补充:增加列的时候,大约一次性增加了10多个列。
回复

使用道具 举报

desehawk 发表于 2014-11-15 17:43:02
mongol 发表于 2014-11-15 15:55
补充:增加列的时候,大约一次性增加了10多个列。
有点像绕口令啊

为什么要增加列
而且咋还有中间表,楼主描述的在清楚些,能画个图就好了
回复

使用道具 举报

bioger_hit 发表于 2014-11-15 17:54:12

楼主有以下几个问题?

在增加完列之后,hive生成数据导出到Oracle里,查询oracle字段都有值,但是hive中查询就没有值,
hive已经生成数据,但是为什么hive中没有值,楼主这个是什么意思?
如果A表已经存在,再次创建是否冲突






回复

使用道具 举报

mongol 发表于 2014-11-17 09:45:57
desehawk 发表于 2014-11-15 17:43
有点像绕口令啊

为什么要增加列

画图?整个VISIO?

hive表A的每个字段实际上都是经过计算得来的,把每个计算的结果汇总到一个临时表B中,然后再把表B中的值和表A对应,完成表A的数据生成。需求是现在表A中需要增加几个列,增加列之后,从hive里导出到oracle,发现这些列是有值的,但是在hive里查询(在hive直接执行语句,结果对应的值为null),是查询不出来的。但是表B查询就可以查询出来。重新创建表A,再查询就可以了。
回复

使用道具 举报

mongol 发表于 2014-11-17 09:47:09
bioger_hit 发表于 2014-11-15 17:54
楼主有以下几个问题?

在增加完列之后,hive生成数据导出到Oracle里,查询oracle字段都有值,但是hive ...

已经存在的表,创建的时候是床架另外一个名字,然后删除之前的表,把新表重命名。
回复

使用道具 举报

bioger_hit 发表于 2014-11-17 22:21:16
mongol 发表于 2014-11-17 09:47
已经存在的表,创建的时候是床架另外一个名字,然后删除之前的表,把新表重命名。



hive 到null是正常的,很可能数据格式的问题。

参考下面帖子,看看能否解决。

hive创建外部表,查询数据为null,不识别数据类型字节

Hive查询表 数据全是NULL
回复

使用道具 举报

mongol 发表于 2014-11-20 22:33:02
bioger_hit 发表于 2014-11-17 22:21
hive 到null是正常的,很可能数据格式的问题。

参考下面帖子,看看能否解决。

恩,谢谢,但是还是没有解决我存在的问题,不过还是十分感谢!
回复

使用道具 举报

mongol 发表于 2014-11-20 22:40:38
desehawk 发表于 2014-11-15 17:43
有点像绕口令啊

为什么要增加列

十分感谢您的帮助!
回复

使用道具 举报

cochou 发表于 2014-11-25 22:34:08
may  be   好像很强大
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条