当数据规模不断膨胀时,我们需要找到一个数据的子集来加快数据分析效率。因此我们就需要通过筛选和分析数据集为了进行模式 & 趋势识别。目前来说有三种方式来进行抽样:随机抽样,桶表抽样,和块抽样。
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>; 有兴趣的朋友可以进一步参考博客: