Hive - 如何有效地创建表作为选择?

时间:2016-09-01 13:29:38

标签: hive hiveql

我有一个hive表htable,它在foobar上进行了分区。我想创建这个表的一小部分用于实验,所以我认为要做的事情是

create table new_table like htable;

insert into new_table partition (foo, bar) select * from htable
where rand() < 0.01 and foo in (a,b)

这需要永远,但最终以java.lang.OutOfMemoryError: Java heap space失败。还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

添加distribute by foo, bar

    insert into new_table partition (foo, bar) select * from htable
     where rand() < 0.01 and foo in (a,b) 
    distribute by foo, bar

这将减少内存消耗。