分享

hive查询数据与查完之后保存到hdfs上的数据不一样

LoveJW 发表于 2014-11-14 10:53:15 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 13 73171

已有(13)人评论

跳转到指定楼层
jixianqiuxue 发表于 2014-11-14 11:27:33
楼主的意思没有太明白,可以描述的更加清晰些。

查询和保存是有所区别的,看你怎么保存的,如果查询完,全部保存,肯定会显示的,不会平白无故消失

回复

使用道具 举报

LoveJW 发表于 2014-11-14 11:33:55
jixianqiuxue 发表于 2014-11-14 11:27
楼主的意思没有太明白,可以描述的更加清晰些。

查询和保存是有所区别的,看你怎么保存的,如果查询完, ...

就是我单独用select * from acl limit 10查询出来的结果就是正常的编号为1-10 条数据,但是当我用insert..select * from acl limit 10 这条语句的时候,保存到hdfs的数据 就是 比如有编号8的  有编号15的 有编号20的这种数据  虽然说还是10条数据 ,但是和只查不保存的数据是不一样的。
回复

使用道具 举报

jixianqiuxue 发表于 2014-11-14 12:05:08
楼主又加入了新数据,所以top10会产生变化,可以看下OVERWRITE的含义。

OVERWRITE


•指定了OVERWRITE
•目标表(或者分区)中的内容(如果有)会被删除,然后再将 filepath 指向的文件/目录中的内容添加到表/分区中。
•如果目标表(分区)已经有一个文件,并且文件名和 filepath 中的文件名冲突,那么现有的文件会被新文件所替代。


更多参考
Hadoop Hive sql语法详解3--DML 操作:元数据存储

Hive insert into插入语句用法

回复

使用道具 举报

LoveJW 发表于 2014-11-14 12:44:29
jixianqiuxue 发表于 2014-11-14 12:05
楼主又加入了新数据,所以top10会产生变化,可以看下OVERWRITE的含义。

OVERWRITE

什么叫又新加入了数据?我查的一直是已经存在的数据啊,我没见分区表 ,用的是外部表。难道 用了这个关键字,保存的话会覆盖掉select * from acl 查出来的数据?
回复

使用道具 举报

desehawk 发表于 2014-11-14 13:07:16
编号先不用管,先看看其它数据是否一致。
在数据库中,编号是不重要的,而且是可以自动生成的。
比如
我们查询的时候,id是可以自定义,并且自动增长的,但是放到hdfs之后,数据库又有自己的一个编号,所以产生这个问题是正常的。关键其他数据一致,说明没有问题。
回复

使用道具 举报

LoveJW 发表于 2014-11-14 13:28:03
desehawk 发表于 2014-11-14 13:07
编号先不用管,先看看其它数据是否一致。
在数据库中,编号是不重要的,而且是可以自动生成的。
比如

这跟编号没关系,我这说的编号只是区分数据,就是数据完全都不一样,
回复

使用道具 举报

desehawk 发表于 2014-11-14 14:03:22
LoveJW 发表于 2014-11-14 13:28
这跟编号没关系,我这说的编号只是区分数据,就是数据完全都不一样,
仔细检查下,可以在描述的详细些,只有个人主观的看法,找到问题难度比较大。比如截图说一下数据库中有什么数据,原先的文件是否有数据,
是否尝试数据库中,只有10条数据,然后文件空。

回复

使用道具 举报

LoveJW 发表于 2014-11-14 14:10:14
desehawk 发表于 2014-11-14 14:03
仔细检查下,可以在描述的详细些,只有个人主观的看法,找到问题难度比较大。比如截图说一下数据库中有什 ...

我建的外部表,然后直接读取的是存在hdfs上的数据,这么说吧 ,我只查询 limit 10 显示出来的是前10条数据,当我insert..select ..limit 10的时候 我这是要保存查询出来的数据 但是我查看保存生成的文件 里面的数据 不是前10条 而是 10-20条  或者是20-30条 再或者都有 。反正是和select * from  acl limit 10;这样查询出来的数据不一样。但是数据又都是存在的
回复

使用道具 举报

pig2 发表于 2014-11-14 14:32:38
LoveJW 发表于 2014-11-14 14:10
我建的外部表,然后直接读取的是存在hdfs上的数据,这么说吧 ,我只查询 limit 10 显示出来的是前10条数 ...
Limit 可以限制查询的记录数。查询的结果是随机选择的。
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条