当数据规模不断膨胀时,我们需要找到一个数据的子集来加快数据分析效率。因此我们就需要通过筛选和分析数据集为了进行模式 & 趋势识别。目前来说有三种方式来进行抽样:随机抽样,桶表抽样,和块抽样。
1 随机抽样(Random sampling):
使用 RAND()函数和 LIMIT 关键字来获得抽样数据。DISTRIBUTE 和 SORT 关键字在这里用来确保 mappers 和 reducers可以高效的使用随机分布的数据。 ORDER BY RAND()语句也可以达到同样目的,但是性能上会稍微差点。
SELECT * FROM <Table_Name> DISTRIBUTE BY RAND() SORT BY RAND()LIMIT <N rows to sample>; 有兴趣的朋友可以进一步参考博客:

随着数据规模增长,使用数据抽样加速分析变得至关重要。本文介绍了Hive中的三种抽样方法:1) 随机抽样,通过RAND()函数实现;2) 桶表抽样,利用CLUSTERED BY优化;3) 块抽样,按HDFS Block随机选取行或百分比数据。


被折叠的 条评论
为什么被折叠?



