- rank()函数和字段名:
- 数据块抽样
- 分桶表的输入裁剪
rank函数进行抽样返回的随机值发挥不相等的值,非rank函数进行分桶的话,同一语句多次执行的返回结果是相同的。
注释:number是字段,numbers是表,表只有一个字段number,数值是1-10
select * from numbers TABLESAMPLE(BUCKET 3 OUT OF 10 ON rank()) s; select * from numbers TABLESAMPLE(BUCKET 3 OUT OF 10 ON number) s;数据块抽样
hive提供按照抽样百分比进行抽样的方式,这种事基于行数的,按照输入路径下的数据块百分比进行的抽样。
select * from numbers TABLESAMPLE(0.1 PERCENT) s;分桶表的输入裁剪
select * from numbers where number % 2 = 0;
对于大多数类型的表,抽样会扫描表中的所有数据,然后在每n行中抽取一行数据。不过,如果tablesample语句中指定的列和clustered by语句中指定的列相同,那么tablesample查询就只会扫描涉及到的表的哈希分区的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)