雅典娜中大小为 N 的随机样本
random sample of size N in Athena
我正在尝试从 Athena 获取 N
行的随机样本。但是由于我想从中抽取这个样本的 table 很大,所以天真
SELECT
id
FROM mytable
ORDER BY RANDOM()
LIMIT 100
永远到 运行,大概是因为 ORDER BY
要求将所有数据发送到单个节点,然后该节点对数据进行洗牌和排序。
我知道 TABLESAMPLE
但这允许人们对一定百分比的行而不是一定数量的行进行抽样。有更好的方法吗?
雅典娜其实在普雷斯托后面。您可以使用 TABLESAMPLE 获取 table.
的随机样本
假设您想要 table 的 10% 样本,您的查询将类似于:
SELECT id FROM mytable TABLESAMPLE BERNOULLI(10)
注意有BERNOULLI和SYSTEM采样。
Here 是它的文档。
我正在尝试从 Athena 获取 N
行的随机样本。但是由于我想从中抽取这个样本的 table 很大,所以天真
SELECT
id
FROM mytable
ORDER BY RANDOM()
LIMIT 100
永远到 运行,大概是因为 ORDER BY
要求将所有数据发送到单个节点,然后该节点对数据进行洗牌和排序。
我知道 TABLESAMPLE
但这允许人们对一定百分比的行而不是一定数量的行进行抽样。有更好的方法吗?
雅典娜其实在普雷斯托后面。您可以使用 TABLESAMPLE 获取 table.
的随机样本假设您想要 table 的 10% 样本,您的查询将类似于:
SELECT id FROM mytable TABLESAMPLE BERNOULLI(10)
注意有BERNOULLI和SYSTEM采样。 Here 是它的文档。