在大规模数据量的数据分析及建模任务中,往往针对全量数据进行挖掘分析时会十分耗时和占用集群资源,因此一般情况下只需要抽取一小部分数据进行分析及建模操作。本文就介绍
块抽样(Block Sampling)
CREATE TABLE iteblog AS SELECT * FROM iteblog1 TABLESAMPLE(1000 ROWS);
CREATE TABLE iteblog AS SELECT * FROM iteblog1 TABLESAMPLE (20 PERCENT);
CREATE TABLE iteblog AS SELECT * FROM iteblog1 TABLESAMPLE(1M);
缺点:不随机。该方法实际上是按照文件中的顺序返回数据,对分区表,从头开始抽取,可能造成只有前面几个分区的数据。
优点:速度快。
分桶表抽样 (Smapling Bucketized Table)
利用分桶表,随机分到多个桶里,然后抽取指定的一个桶。举例:随机分到10个桶,抽取第一个桶。 CREATE TABLE iteblog AS SELECT * FROM iteblog1 TABLESAMPLE (BUCKET 1 OUT OF 10 ON rand());
优点:随机,测试发现,速度比方法3的rand()快。
随机抽样
原理:利用 rand() 函数进行抽取,rand() 返回一个0到1之间的 double 值。
使用方法一 CREATE TABLE iteblog AS
SELECT * FROM iteblog1
ORDER BY rand()
limit 10000
此时&#