我想从配置单元分区表的每个分区中获取前N条记录,而不必对表中的每个记录进行反序列化。我已经看到了许多其他数据库的解决方案,但是没有一种解决方案可以在Hive中运行而不会运行每条记录。
一个最小的例子:
create table demo ( val int )
partitioned by (partid int);
insert into demo partition (partid=1)
select stack(5, 1, 2, 3, 4, 5);
insert into demo partition (partid=2)
select stack(5, 100, 200, 300, 400, 500)
insert into demo partition (partid=3)
select stack(5, -1, -2, -3, -4, -5)
insert into demo ...
...
我想得到
的结果select * from partition_demo where partid = 1 limit 1
union all
select * from partition_demo where partid = 2 limit 1
union all
select * from partition_demo where partid = 3 limit 1
union all
...
无需编写每个子句,和,而无需反序列化每个分区中的所有数据(这似乎发生在使用RANK OVER
的情况下)。