我有一个hive表htable
,它在foo
和bar
上进行了分区。我想创建这个表的一小部分用于实验,所以我认为要做的事情是
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
失败。还有更好的方法吗?
答案 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
这将减少内存消耗。