2017-06-29 124 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