gpt4 book ai didi

hadoop - 配置单元的采样问题

转载 作者:可可西里 更新时间:2023-11-01 16:51:22 26 4
gpt4 key购买 nike

“all_members”是 hive 中的一个表,有 10m 行和 1 列:“membership_nbr”。我想采样 3000 行。这就是我所做的:

hive>create table sample_members as select * from all_members limit 1;
hive>insert overwrite table sample_members select membership_nbr from all_members tablesample(3000 rows);
hive>select count(*) from sample_members;

确定 45000

如果我用 300 行替换 3000 行,结果不会改变我做错了什么吗?

最佳答案

使用 tablesample(3000 rows) 的表抽样不会从整个表中获取 3000 行,而是从每个输入拆分中获取 3000 行。

因此,您的查询可能会运行 15 个映射器。因此,每个映射器将获取 3000 行。总共 3000 * 15 = 45000 行。此外,如果您将 3000 行更改为 300 行,您将在采样后获得 4500 行作为输出。

因此,根据您的要求,您必须提供 tablesample(200 rows)。结果,每个映射器将获取 200 行。最后,15 个映射器将获取 3000 个采样行。

有关各种类型的采样,请参阅以下链接: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Sampling

关于hadoop - 配置单元的采样问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32870885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com