0


HIVE基本查询操作(二)——第3关:Hive抽样查询

第3关:Hive抽样查询


任务描述

本关任务:计算每个股票每天的总交易量。

相关知识

为了完成本关任务,你需要掌握:1.随机抽样 2.桶表抽样 3.数据块抽样

随机抽样

使用

RAND()

函数和

LIMIT

关键字来获取样例数据,使用

DISTRIBUTE

SORT

关键字来保证数据是随机分散到

mapper

reducer

的。

ORDER BY RAND()

语句可以获得同样的效果,但是性能没这么高。

/**从table表里随机抽取5行数据*/
//第一种:
SELECT * FROM table DISTRIBUTE BY RAND() SORT BY RAND() LIMIT 2;
//第二种(性能不太好):
SELECT * FROM table ORDER BY RAND() LIMIT 2;
桶表抽样

Hive分桶

对于每一个表(

table

)或者分区,

Hive

可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。

Hive

也是 针对某一列进行桶的组织。

Hive

采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。

桶(

bucket

)是指将表或分区中指定列的值为

key

进行

hash

hash

到指定的桶中,这样可以支持高效采样工作。

把表(或者分区)组织成桶(

Bucket

)有两个理由:

获得更高的查询处理效率。桶为表加上了额外的结构,Hive 在处理有些查询时能利用这个结构。具体而言,连接两个在(包含连接列的)相同列上划分了桶的表,可以使用 Map 端连接 (M
标签: hive 大数据 hadoop

本文转载自: https://blog.csdn.net/qq_51916951/article/details/127544681
版权归原作者 真题OK撒 所有, 如有侵权,请联系我们删除。

“HIVE基本查询操作(二)——第3关:Hive抽样查询”的评论:

还没有评论