Hivesql里的limit使用误区

来源:互联网 发布:java中的多态是什么 编辑:程序博客网 时间:2024/06/06 01:23
select * from HIVE_D_MT_UU_H_SPARK limit 1000;
读取前1000行。


需求:
在hive表前1000行里,过滤出不重复的refid,imsi。
错误的写法:
select distinct refid,imsi from HIVE_D_MT_UU_H_SPARK limit 1000;
会去读取全表,把0~1000行的不重复refid,imsi显示出来。

正确的写法:
select distinct refid,imsi from (select * from HIVE_D_MT_UU_H_SPARK limit 1000);


调优的写法:
CREATE TABLE TEMP_HIVE_D_MT_UU_H_SPARK AS
select * from HIVE_D_MT_UU_H_SPARK limit 1000;
select distinct refid,imsi fromTEMP_HIVE_D_MT_UU_H_SPARK;


hive最快的执行就是不走MapReduce。简单的select的是最快的,嵌套啥的都比较忙。与关系型数据库不同。
调优的写法执行更快。



原创粉丝点击