如何在配置单元中创建包含 table 记录的 10% 的视图?

How to Create view with 10% of record of a table in hive?

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

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

如果大约 10% 的样本就足够了,只需包括:

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

对于较大的 table,这应该非常接近 10%。

或者您可以使用 ntile window 函数,如下所示:

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