【Hive】数据抽样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Hive】数据抽样相关的知识,希望对你有一定的参考价值。
参考技术A 1、随机抽样(rand()函数)2、数据块抽样(tablesample()函数)
limit关键字限制抽样返回的数据
案例: order by 全局排序耗时长
limit关键字限制抽样返回的数据
案例: rand函数前的distribute和sort关键字可以保证数据在mapper和reducer阶段是随机分布的
指定where条件,用时36s,而且可以看出是tablesample函数是在where条件之前生效的~
hive中分桶其实就是根据某一个字段Hash取模,放入指定数据的桶中,比如将表table_1按照ID分成100个桶,其算法是hash(id) % 100,这样,hash(id) % 100 = 0的数据被放到第一个桶中,hash(id) % 100 = 1的记录被放到第二个桶中。创建分桶表的关键语句为:CLUSTER BY语句。
分桶抽样语法:
hive 抽样方法
select *
from (
select *
from advert.dws_advert_order_model_sample_pcvr_v2_di
where dt>= date_sub(‘${date}‘,7) and dt< ‘${date}‘
and ((label >=0.5 and rand()>(1-2*0.05)) or (label <0.5 and rand()>(1-2*0.05)))
union all
select *
from advert.dws_advert_order_model_sample_pcvr_v2_di
where dt=‘${date}‘
and ((label >=0.5 and rand()>(1-2*0.05)) or (label <0.5 and rand()>(1-2*0.05)))
) tmp
where rand()>0.3;
以上是关于【Hive】数据抽样的主要内容,如果未能解决你的问题,请参考以下文章