我在用spark做执行引擎的Hive上工作。table是未压缩的Parquet地板。
此语句在几秒钟内返回数据:
select * from mydb.src_table
limit 100;
但是当我做了下面的事情 insert
陈述极其缓慢:
create table mydb.dest_table
like mydb.src_table
;
insert into mydb.dest_table
select * from mydb.src_table
limit 100
;
我杀了那个人 insert
10分钟后查询。 src_table
相当大(20多亿行,几列包含大量文本),但我只得到100行。我只是不明白 select ... limit
太快了但是 insert ... select ... limit
太慢了。
这个 EXPLAIN
对于 select
显示1个阶段。但是对于 insert
它显示了不少于8个阶段-发生了什么?
有什么想法吗?
1条答案
按热度按时间zi8p0yeb1#
不需要创建表,然后插入记录,试试ctas
试试这个,