2017-06-29 34 views
0

我想從一個大表中獲取數據樣本,並希望確保稍後可以重複此操作。其他SQL允許使用set.seed(整數)或可重複(整數)命令設置種子來完成可重複採樣。但是,這在Presto中不適合我。這樣的命令不可用嗎?謝謝。如何使用Presto SQL獲得可重複的樣本?

回答

1

一種解決方案是,您可以通過添加隨機內容(例如UUID)的列(或創建視圖)來模擬採樣,然後通過在此列上過濾來選擇行(例如,UUID以'1'結尾) )。您可以調整條件以獲取所需的樣本量。

按設計,結果是隨機的,也可以在多次運行中重複使用。

+0

謝謝。這是一個很好的解決方法。 – gchaks

1

您可以創建與選定IDS一個簡單的中間表:

CREATE TABLE IF NOT EXISTS <temp1> 
AS 
SELECT <id_column> 
FROM <tablename> TABLESAMPLE SYSTEM (10); 

這將只包含採樣ID和將準備與感興趣的數據做JOIN使用它在你的分析下游。

+0

謝謝你的回答。雖然這將起作用,因爲我正在處理非常大的數據集,所以我想避免連接。 – gchaks