使用Hive隨機(jī)抽樣

1 在hive中使用rand簡(jiǎn)單隨機(jī)抽樣

select a.*,rand(12345) as random
from tripdata a;

country       city  visitors      random
阿聯(lián)酋  阿布扎比        137     0.3618031071604718
阿聯(lián)酋  阿布扎比        146     0.932993485288541
阿聯(lián)酋  阿布扎比        178     0.8330913489710237
阿聯(lián)酋  阿布扎比        337     0.32647575623792624
阿聯(lián)酋  阿布扎比        178     0.2355237906476252
阿聯(lián)酋  阿布扎比        227     0.34911535662488336
阿聯(lián)酋  阿布扎比        157     0.4480776326931518
阿聯(lián)酋  迪拜    144     0.6381529437838686
阿聯(lián)酋  迪拜    268     0.1582665432952023
阿聯(lián)酋  迪拜    103     0.768888060192009
阿聯(lián)酋  迪拜    141     0.9450734577298074
阿聯(lián)酋  迪拜    108     0.06558504072066074
阿聯(lián)酋  迪拜    266     0.8102312734654696
澳大利亞        悉尼    141     0.47791537253375116
澳大利亞        悉尼    122     0.3325863969722369
澳大利亞        悉尼    153     0.6925313420371904
澳大利亞        悉尼    128     0.9162288670686813
澳大利亞        墨爾本  294     0.35086223384270854
澳大利亞        墨爾本  230     0.09024327831371282
澳大利亞        墨爾本  159     0.5554002739128288
澳大利亞        墨爾本  188     0.10277490055301586
澳大利亞        堪培拉  249     0.9443583363476495
澳大利亞        堪培拉  378     0.19418323997969733
澳大利亞        堪培拉  255     0.2535159880591803
澳大利亞        堪培拉  240     0.6960683253803703
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
阿聯(lián)酋  迪拜    268     0.3618031071604718
阿聯(lián)酋  迪拜    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
阿聯(lián)酋  阿布扎比        157
阿聯(lián)酋  阿布扎比        137
阿聯(lián)酋  迪拜    144
阿聯(lián)酋  阿布扎比        227
澳大利亞        堪培拉  240

2、數(shù)據(jù)塊取樣(Block Sampling)--來(lái)源于網(wǎng)路

--數(shù)據(jù)塊取樣(Block Sampling)
SELECT * FROM lxw1 TABLESAMPLE (50 PERCENT);

--將會(huì)從表lxw1中取樣30M的數(shù)據(jù):
SELECT * FROM lxw1 TABLESAMPLE (30M);

--這種方式可以根據(jù)行數(shù)來(lái)取樣和橙,但要特別注意:
這里指定的行數(shù),是在每個(gè)InputSplit中取樣的行數(shù)裂垦,也就是,每個(gè)Map中都取樣n ROWS肌索。
SELECT COUNT(1) FROM (SELECT * FROM lxw1 TABLESAMPLE (200 ROWS)) x;


--分桶表取樣(Sampling Bucketized Table)
SELECT COUNT(1)
FROM lxw1 TABLESAMPLE (BUCKET 1 OUT OF 10 ON rand());

系統(tǒng)抽樣 --來(lái)源于網(wǎng)路

mod,rand() 依照userrid取模蕉拢,分5組,每組隨機(jī)抽取100個(gè)用戶诚亚,實(shí)現(xiàn)如:

  • 依據(jù)user_id晕换,取模,獲取 mod_numd
  • 在mod_num組內(nèi)然后隨機(jī)排序站宗,
  • 從各組取出20條
select *  
  from(  
      select refund_id,user_id,mod_num,rank_num from 
      (select refund_id,user_id,cast(10+rand()*100 as double) rank_num,
        user_id%5 as mod_num 
        from songpo_test)   
      distribute by mod_num sort by mod_num,rank_num desc  
      ) a  
where row_number(mod_num)<=20;

分層抽樣 --來(lái)源于網(wǎng)路

按照每個(gè)組的記錄數(shù)來(lái)分層抽樣闸准。假設(shè)需要抽取EXTRA_NUM條記錄

  • 計(jì)算每個(gè)分區(qū)需要抽記錄條數(shù)
  • 在mod_num組內(nèi)然后隨機(jī)排序
  • 從各組取出cat_extra_num條
drop table test_data_extra_indexs;  
      create table test_data_extra_indexs as  
      select a.cat_id,cat_num,all_num,cat_num/all_num as extra_lv,(cat_num/all_num)*'EXTRA_NUM'  as cat_extra_num,c.refund_id,c.user_id,c.org_id from   
      (select cat_id,count(1) as cat_num,'1' as key from songpo_test group by cat_id) a   
      join  
      (select '1' as key,count(1) as all_num from songpo_test) b   
      on a.key=b.key  
      join  
      (select * from songpo_test) c   
      on a.cat_id=c.cat_id;  
  
  
      select *  
      from(  
        select refund_id,user_id,cat_id,mod_num,rank_num from   
        select refund_id,user_id,cat_id,cast(10+rand()*100 as double) rank_num,user_id%5 as mod_num,cat_extra_num from(  
        (select refund_id,user_id,cat_id,cast(10+rand()*100 as double) rank_num,user_id%5 as mod_num from test_data_extra_indexs)  x  
        )  
        distribute by mod_num sort by mod_num,rank_num desc  
      )a  
where row_number(mod_num)<=20;  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市梢灭,隨后出現(xiàn)的幾起案子夷家,更是在濱河造成了極大的恐慌,老刑警劉巖敏释,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件库快,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡钥顽,警方通過(guò)查閱死者的電腦和手機(jī)义屏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耳鸯,“玉大人,你說(shuō)我怎么就攤上這事膀曾∠嘏溃” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵添谊,是天一觀的道長(zhǎng)财喳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)斩狱,這世上最難降的妖魔是什么耳高? 我笑而不...
    開(kāi)封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮所踊,結(jié)果婚禮上泌枪,老公的妹妹穿的比我還像新娘。我一直安慰自己秕岛,他們只是感情好碌燕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布误证。 她就那樣靜靜地躺著,像睡著了一般修壕。 火紅的嫁衣襯著肌膚如雪愈捅。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天慈鸠,我揣著相機(jī)與錄音蓝谨,去河邊找鬼。 笑死青团,一個(gè)胖子當(dāng)著我的面吹牛譬巫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播壶冒,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缕题,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了胖腾?” 一聲冷哼從身側(cè)響起烟零,我...
    開(kāi)封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咸作,沒(méi)想到半個(gè)月后锨阿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡记罚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年墅诡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桐智。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡末早,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出说庭,到底是詐尸還是另有隱情然磷,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布刊驴,位于F島的核電站姿搜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏捆憎。R本人自食惡果不足惜舅柜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躲惰。 院中可真熱鬧致份,春花似錦、人聲如沸础拨。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至雇锡,卻和暖如春逛钻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锰提。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工曙痘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人立肘。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓边坤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親谅年。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茧痒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容