Hive 抽样语法
Hive使用tablesample语法对表进行抽样,包含两种抽样方式桶抽样和块抽样
桶抽样
桶抽样语法:tablesample (bucket x out of y [on colname])
- tablesample可以用在任何表上,不单单是分区表
- colname用于对表中的行抽样, colname可以是任何非分区字段或者用rand()来表示用整行而非一个单独字段
整个表会以colname打散到y个桶里(编号从1到y),属于x桶的行会被抽出来
例如:
SELECT * FROM source TABLESAMPLE(BUCKET 3 OUT OF 32 ON rand()) s;
source表会按照整行分成32个桶,第三个桶的数据会抽样出来,s是表的别。