hive實現從表中隨機抽樣得到乙個不重複的資料樣本
方法一:
select * from table_a order by rand() limit 100;
方法二:
select * from (
select e.*, cast(rand() * 100000 as int) as vidx from e
) vt order by vt.vidx limit 1000
說明:1,表e為乙個普通的表,裡面存有資料,我們要從表e中隨機抽出1000條資料作為資料樣本。
2,rand() 函式產生乙個0到1的隨機數字,cast(rand() * 100000 as int) as vidx 表示: vidx為乙個0到100000之間的乙個隨機整數。
3,e表中的字段和vidx組成了乙個新的**vt 。
hive 隨機抽樣
1.random sampling syntax select from distribute by rand sort by rand limit 2.bucket table sampling 該方式是最佳化取樣bucket表。rand 函式也可以用來取樣整行。如果取樣列同時使用了cluster...
使用Hive隨機抽樣
test1 簡單隨機抽樣 select t.varx,t.a from select varx,rand a from tablename t where t.a between 0 and 0.2這樣就抽取了五分之一的資料。或者像這樣隨機抽取100條資料,與limit結合使用 select dis...
Hive實現隨機抽樣(附詳解)
select from tab order by rand limit 1000select from select e.cast rand 100000 as int as idx from e t order by t.idx limit 1000表e為乙個存有資料普通表,我們要從表e中隨機抽出...