1. 程式人生 > >Hive實現從表中隨機抽樣得到一個不重複的資料樣本

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 。