如何使用Hive中的表记录的10%创建视图?

问题描述

我想在配置单元表的顶部创建一个视图,但该视图应包含
仅占总记录的10%。 Count(*)/10

如何使用ROWNUM()RANK函数。
如果数据是随机的,将非常有帮助。

解决方法

如果大约10%的样本足够好,则只需添加:

create view v_t
    select t.*
    from t
    where rand() < 0.1;

对于大桌子,这应该非常接近10%。

,

或者,您可以使用以下ntile窗口函数:

create view v_t
    select * from 
    (select *,ntile(10) over(order by rand()) as percentile from tablename) as A 
    where percentile=1

我已经在Postgres中测试了类似的查询。 Here is a demo

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...