Hive實現從表中隨機抽樣得到乙個不重複的資料樣本

2021-07-24 07:18:01 字數 482 閱讀 2267

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中隨機抽出...