Hive实现从表中随机抽样得到一个不重复的数据样本

select a.* 
from (
select a.*,rand(12345) as random
from tripdata a
) a
where random between 0 and 0.2;

  

a.country       a.city  a.visitors      a.random
阿联酋  迪拜    268     0.3618031071604718
阿联酋  迪拜    108     0.932993485288541
澳大利亚        墨尔本  230     0.8330913489710237
澳大利亚        墨尔本  188     0.32647575623792624
澳大利亚        堪培拉  378     0.2355237906476252






select distinct a.*
from tripdata a
order by rand(12345) 
limit 5;

 

country       city  visitors
阿联酋  阿布扎比        157
阿联酋  阿布扎比        137
阿联酋  迪拜    144
阿联酋  阿布扎比        227
澳大利亚        堪培拉  240



select
	user_log_acct,
	row_number() over(ORDER BY rand(1000)) as row_num
from
	dev.dev_XXX

  

这里,row_number() over(ORDER BY rand(1000)) 中,1000相当于一个随机种子,跑多次,随机的结果是一样的;

 


https://www.jianshu.com/p/2b73e7c53355
posted @ 2019-02-25 20:01  静悟生慧  阅读(3538)  评论(0编辑  收藏  举报